我有一个列表,其中的一些数字是这样的:
["0022", "1144", "1355", "0251"...]
这些数字表示时间,0022
表示12:22
等等。
现在我需要根据小时过滤这些时间。例如,我的范围介于凌晨 2 点到 4 点之间,因此我需要0251
在此范围内(因为它表示 02:51(。
我尝试执行以下操作:
for i in mylist:
if(i in range(200,400)):
print(i)
if(i in range(1000,1200)):
print(i)
我这样做是因为我认为0251
可以解释为251
,但我没有得到任何输出。第二个 if 语句应返回1144
。
我正在尝试真正不使用任何包或模块,我希望我的代码不受包和模块的影响......任何帮助都非常感谢。
列表包含字符串,代码正在尝试筛选数值。首先将它们转换为整数。
mylist = [int(i) for i in mylist]
for i in mylist:
....etc...
当前代码的问题在于,您正在查找表示时间的字符串是否在整数范围内。
最安全的做法是将其转换为时间,然后检查该时间小时的范围
from datetime import datetime
for i in mylist:
hour = datetime.strptime(i, '%H%M').hour
if 2 < hour < 4:
print(i)
Id 假设,因为您使用 200-400 作为列表的索引(所以 mylist[200]-mylist[400](。 相反,我会像
for i in mylist:
if int(i)>200 and int(i)<400:
print(i)
elif int(i)>1000 and int(i)<1200:
print(i)