我如何从 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
有什么不明白的地方尽管问:)
我正在尝试从列表中提取元素。 查了很多资料都不知道..
这是我的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
有什么不明白的地方尽管问:)