Перебрать список с плавающей запятой в Python

Я пытаюсь перебрать список значений с плавающей запятой, используя цикл for, но получаю сообщение об ошибке. Я пытаюсь распечатать список, используя enumerate(). Есть ли лучший способ перебрать список поплавков?

В списке есть такие числа, как list_float= [1546626931.138813,1546626931.138954,1546626931.139053,1546626931.139289,.......,1546628078.463885]

Код:

import csv
import datetime
import pandas


filename = open('C:\\Users\\xyz\\Downloads\\BLF File\\output.csv', "w")
log = can.BLFReader('C:\\Users\\xyz\\Downloads\\BLF File\\test.blf')

# print ("We are here!")
log_output = []
timestamp = [] #Variable to store timestamps from blf file
time_del = [] #Variable to store time difference
# filename.write('Timestamp              ID             DLC                 Channel' + '\n')

print('We are here 1')
for time in log:
    time = str(time).split()
    timestamp = float(time[1])
    # print(timestamp)


for count, item in enumerate(timestamp):
    print(count, item)

Он печатает только последнее значение с плавающей запятой в списке, которое равно «1546628078.463885», как показано ниже:

0 1
1 5
2 4
3 6
4 6
5 2
6 8
7 0
8 7
9 8
10 .
11 4
12 6
13 3
14 8
15 8
16 5 

В файле, который я передал, значения такие, как показано ниже:

['Timestamp:', '1546626926.380693', 'ID:', '0366', 'S', 'DLC:', '8', '25', '80', 'f8', '7f', '00', '00', '00', '00', 'Channel:', '0']
['Timestamp:', '1546626926.381285', 'ID:', '0120', 'S', 'DLC:', '2', '00', '05', 'Channel:', '1']

person Shrads    schedule 22.06.2019    source источник
comment
Можете ли вы привести пример того, что находится в вашей переменной log?   -  person Nakor    schedule 23.06.2019
comment
Ваш timestamp не похож на список поплавков; похоже на один поплавок (timestamp = float(time[1])). Разве ваш код в текущем состоянии не выдает ошибку?   -  person Imperishable Night    schedule 23.06.2019
comment
@Nakor Я отредактировал свой исходный вопрос. пожалуйста, взгляните!   -  person Shrads    schedule 23.06.2019


Ответы (1)


Этот цикл перезаписывает timestamp каждый раз, поэтому в конце timestamp представляет собой одиночное число с плавающей запятой, а не список с плавающей запятой.

for time in log:
    time = str(time).split()
    timestamp = float(time[1])

Вы, вероятно, хотите:

for time in log:
    time = str(time).split()
    timestamp.append(float(time[1]))
person Imperishable Night    schedule 22.06.2019
comment
Спасибо, что исправили мою глупую ошибку. Я отредактировал свой исходный вопрос, не могли бы вы взглянуть на него, пожалуйста. Спасибо. - person Shrads; 23.06.2019
comment
Если у вас есть что-то еще, чтобы спросить, пожалуйста, задайте новый вопрос. Затем вы можете вставить ссылку на свой вопрос здесь, если хотите. Не редактируйте вопрос просто потому, что это смутит любого, кто может увидеть этот вопрос позже. - person Imperishable Night; 23.06.2019
comment
Хорошо, я опубликую новый вопрос. - person Shrads; 23.06.2019