0
我有一个defaultdict,我想创建一个字典作为值的一部分,我可以追加到这个字典吗?目前我正在追加一份名单,这意味着词典是分开的。追加到默认字典中的字典
dates = [datetime.date(2016, 10, 17), datetime.date(2016, 10, 18), datetime.date(2016, 10, 19), datetime.date(2016, 10, 20), datetime.date(2016, 10, 21), datetime.date(2016, 10, 22), datetime.date(2016, 10, 23)]
e = defaultdict(list)
for key, value in d.iteritems():
value = (sorted(value, key=itemgetter('date'), reverse=False))
for date in dates:
for i in value:
if i['date'] == str(date) and i['time'] == 'morning':
value1 = float(i['value1'])
temp = {'val_morning': value1 }
e[str(date)].append(temp)
elif ii['date'] == str(date) and i['time'] == 'evening':
value2 = float(i['value2'])
temp = {'val_evening': value2 }
e[str(date)].append(temp)
导致:
{'2016-10-20': [{'val_morning': 0.0}, {'val_evening': 0.0}], '2016-10-21': [{'val_morning': 0.0}, {'val_evening': 0.0}]}
编辑 所需的输出:
{
'2016-10-20': {'val_morning': 0.0, 'val_evening': 0.0},
'2016-10-21': {'val_morning': 0.0, 'val_evening': 0.0}
}
为什么你想要的输出包含一个只有一个项目的列表?看起来这个列表是不必要的 - 不会'{'2016-10-20':{'value1':0.0,'value2':0.0},'2016-10-21':...'be better ? – mgilson
表示同意,报废清单。将更新问题。谢谢 – user3939059
每天总是只有2个值(早上对应于'value1',对应于'value2'的晚上对应一个)?或者一天能有更多的价值?在这种情况下你想做什么? – mgilson