我正在尝试从列表中提取元素。 我查了很多数据,但我不知道......
这是我的test.txt(文本文件)
[左表中=时间,右表中=值]
0 81
1 78
2 76
3 74
4 81
5 79
6 80
7 81
8 83
9 83
10 83
11 82
.
.
22 81
23 80
如果当前时间等于表格中的时间,我想提取该时间的值。
这是我的demo.py(python文件)
import datetime
now = datetime.datetime.now())
current_hour = now.hour
with open('test.txt') as f:
lines = f.readlines()
time = [int(line.split()[0]) for line in lines]
value = [int(line.split()[1]) for line in lines]
>>>time = [0,1,2,3,4,5,....,23]
>>>value = [81,78,76,......,80]
答案 0 :(得分:0)
假设时间列的唯一值:
import datetime
with open('text.txt') as f:
lines = f.readlines()
#this will create a dictionary with time value from test.txt as the key
time_data_dict = { l.split(' ')[0] : l.split(' ')[1] for l in lines }
current_hour = datetime.now().hour
print(time_data_dict[current_hour])
答案 1 :(得分:0)
import datetime
import csv
data = {}
with open('hour.csv', newline='') as f:
reader = csv.reader(f)
for row in reader:
k, v = row
data[k] = v
hour = str(datetime.datetime.now().hour)
print(data[str(hour)])
答案 2 :(得分:0)
您可以创建一个循环遍历列表,查找列表中每个位置的当前小时。
从位置0开始,它会将其与当前小时进行比较。如果它具有相同的值,它将在" time"中找到它所在位置的值。变量 extractedValue
,然后打破循环。
如果它不是相同的值,它将增加1 pos
变量,我们用它来查看列表。因此,它会继续搜索,直到第一个 if
为True或列表结束。
pos=0
for i in time:
if(current_hour==time[pos]):
extractedValue=value[pos]
break
else:
pos+=1
pass
随意询问您是否理解某事:)