写了这段代码:
from collections import defaultdict
import datetime
slovar = [{'date': datetime.date(2022, 8, 20), 'type': 'WRITE'},
{'date': datetime.date(2022, 8, 18), 'type': 'READ'},
{'date': datetime.date(2022, 8, 18), 'type': 'WRITE'}]
historic = defaultdict(list)
for i in slovar:
date, type = i['date'], i['type']
historic[date].append(type)
print(dict(historic))
>>>{datetime.date(2022, 8, 20): ['WRITE'], datetime.date(2022, 8, 18): ['READ', 'WRITE']}
我不知道如何将它带到这种形式(即,使字典在字典中 + 按日期排序 + 计数 READ 和 WRITE 并将它们绑定到日期):
>>>{{datetime.date(2022, 8, 18): {'READ': 1, 'WRITE': 1}, datetime.date(2022, 8, 20): {'WRITE': 1}}
请帮帮我
排序
我不会对字典进行排序。您始终可以绕过它,而无需先按所需顺序进行排序:
或者:
但是如果你仍然需要一个排序的字典,那么在下面的任何配方中添加一点排序:
词典建设
集合.计数器:
如果您想不使用
Counter
,则使用普通字典的变体:变体完全在普通字典上:
但总的来说,依赖字典中键的顺序并不是一个好主意。