sky*_*gle 16 python dictionary
我有一本字典.键是日期(日期时间).我需要对字典进行排序,以便字典中的值按日期排序 - 这样通过迭代字典,我按照所需的时间顺序(即日期/时间)顺序处理项目.
我怎么可以按日期排序这样的字典?
例:
mydict = { '2000-01-01': {fld_1: 1, fld_2: 42}, '2000-01-02': {fld_1:23, fld_2: 22.17} }
Run Code Online (Sandbox Code Playgroud)
注意:我在这里使用字符串而不是datetime,以保持示例简单
Dav*_*ebb 17
如果你使用的是Python 2.7+或3.1+,你可以OrderedDict
从collections
你的字典中创建一个from,然后迭代它.
ordered = OrderedDict(sorted(mydict.items(), key=lambda t: t[0]))
Run Code Online (Sandbox Code Playgroud)
但是,根据您想要做的事情,可能更容易从您的dict迭代排序的键列表.
字典从不按某种顺序存储任何内容.但是您可以获得d.keys()
可以对其进行排序的密钥列表.迭代下面的生成器.
def sortdict(d):
for key in sorted(d): yield d[key]
Run Code Online (Sandbox Code Playgroud)
使用此功能,您将能够按时间顺序迭代值.
for value in sortdict(mydict):
# your code
pass
Run Code Online (Sandbox Code Playgroud)