Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改Python代码以使其正常工作_Python_List_Datetime_For Loop - Fatal编程技术网

如何更改Python代码以使其正常工作

如何更改Python代码以使其正常工作,python,list,datetime,for-loop,Python,List,Datetime,For Loop,我需要一些帮助。 我有一本字典,它表示每15分钟8天内的测量数据,但有些测量数据缺失。键是日期时间对象: datetime(year, month, date, hour, minute) 和值表示测量参数。我的目标是获得一本新的字典,其中的键只代表一天中的时间,例如: time(hour, minute) 它的值是每天同一时间提供的测量值列表。因此,我希望获得长度为L/8的新字典,而不是第一个长度为L/8的字典,其中每个值都是8个数字的列表(如果在一两天内缺少值,则有时更少)。对于我来说,

我需要一些帮助。 我有一本字典,它表示每15分钟8天内的测量数据,但有些测量数据缺失。键是日期时间对象:

datetime(year, month, date, hour, minute)
和值表示测量参数。我的目标是获得一本新的字典,其中的键只代表一天中的时间,例如:

time(hour, minute)
它的值是每天同一时间提供的测量值列表。因此,我希望获得长度为L/8的新字典,而不是第一个长度为L/8的字典,其中每个值都是8个数字的列表(如果在一两天内缺少值,则有时更少)。对于我来说,这是一个非常简单的问题,如果没有缺失值,但有了缺失值,我的程序会返回一些奇怪的结果。如果有人能提供一个想法,那就太好了!这是我的代码(tec是我的初始字典):

time\u of_day=[]
日期=日期时间(2020,1,13,0,0)
日期<日期时间(2020,1,14,0,0):
每天的时间。附加(日期)
日期=日期+td(分钟=15)
日期=dict.fromkeys(日期的时间,[])
对于我在day_tec.keys()中:
j=0
而j<8:
尝试:
day_tec[i].追加(tec[i+j*timedelta(days=1)])
例外情况除外,如e:
打印(e)
通过
j=j+1
打印(日)

print(day_-tec)每15分钟返回一次datetime(2020,1,13,0,0)到datetime(2020,1,14,0,0)之间带有datetime对象作为键的字典,但其值是与初始字典长度相同的列表。

您可以使用
defaultdict
获取所需内容。下面的代码将为您提供一个字典,其中每个键都是小时和分钟的元组,每个值都是
tec
dict
中记录的值

from collections import defaultdict

day_tec = defaultdict(list)
for dt, value in tec.items():
    tm = (dt.hour, dt.minute)
    day_tec[tm].append(value)
print(day_tec)

显示产生奇怪结果的代码,我们应该能够帮助您修复它。但我们不会为你写的。我添加了代码
from collections import defaultdict

day_tec = defaultdict(list)
for dt, value in tec.items():
    tm = (dt.hour, dt.minute)
    day_tec[tm].append(value)
print(day_tec)