Перебирать список с плавающей точкой в ​​Python - PullRequest
0 голосов
/ 23 июня 2019

Я пытаюсь перебрать список значений с плавающей запятой, используя цикл 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']

1 Ответ

3 голосов
/ 23 июня 2019

Этот цикл перезаписывает 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]))
...