我如何从 python 中的列表中提取元素

how can i extract elements from lists in python

我正在尝试从列表中提取元素。 查了很多资料都不知道..

这是我的test.txt(文本文件)
[左边在table=时间,右边在table=值]

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

如果当前时间等于table中的时间,我想提取那个时间的值。

这是我的 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]

假设时间列的值是唯一的:

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])
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)])

您可以创建一个循环来遍历列表,在列表中的每个位置查找当前时间。

从位置 0 开始,它将与当前小时进行比较。如果是相同的值,它会将在 "time" 中找到的位置的值赋给变量 extractedValue,然后它将 打破循环。

如果不是相同的值,它会将 pos 变量加 1,我们用它来查看列表。因此它将继续搜索,直到第一个 if 为 True 或列表结束。

pos=0
for i in time:
    if(current_hour==time[pos]):
        extractedValue=value[pos]
        break
    else:
        pos+=1
        pass

有什么不明白的地方尽管问:)