#python #slice
#python #срез
Вопрос:
Я пытаюсь прочитать данные из файла, который разделен на столбцы с данными за каждый год и строками с именами значений (например: количество раз, когда я открывал Firefox в 2015 году). Теперь я знаю, как читать определенную строку, но у меня возникают проблемы с чтением из разных столбцов. Они имеют ширину в 10 пробелов, но имеют только такие значения, как -0.5 и 1.2, поэтому они не доходят до десятых и только до 1 десятичного знака. Вот так:
-3.5 1.0 -2.9 6.8
Как мне это сделать, чтобы прочитать эти значения, поскольку я должен сравнивать их как значения с плавающей точкой с другими данными? Я бы нарезал его? Если это так, я не нашел способа сделать это.
Комментарии:
1.
data = [float(cell) for cell in line.split()]
может помочь.
Ответ №1:
Если вы знаете, сколько столбцов у вас будет, вы можете разделить пробелы и принудительно использовать значение с плавающей точкой:
[float(i) for i in "-3.5 1.0 -2.9 6.8".split()]
Выдает:
[-3.5, 1.0, -2.9, 6.8]
Ответ №2:
После того, как вы получили свою строку в строке, самым простым было бы разделить строку на пробелы.
values = line.split()
Итерация по этому списку и приведение к значению с плавающей точкой.
float_values = [float(v) for v in values]
Комментарии:
1. Спасибо! Итак, из любопытства, есть ли способ сделать это с помощью индексации или путем нарезки? Кто-то сказал мне, что есть способ сделать это без .split(), но, похоже, я не могу найти «красивый» способ сделать это. Я буду использовать это, но просто любопытно.
2. «сплит» — ваш друг. Проблема здесь в том, что вам нужно знать длину символа значения.