我有一个字典,其中的键是日期字符串。格式为:
%d.%m.%Y
即。 “2008年5月11日”。这些日期每天都有相应的数据。
最简单的方法是将它们收集到两个列表中,一个用于键,一个用于值,列表按时间顺序排列,键[5]对应于值[5]?
我最终想要实现的是获取这些日期和值并相应地绘制它们。我现在正在使用matplotlib。
答案 0 :(得分:4)
将密钥转换为datetime.date
个值;使用.items()
将为您提供键和值的元组,然后您可以对其进行排序:
data = [(datetime.datetime.strptime(k, '%d.%m.%Y').date(), v)
for k, v in yourdict.items()]
data.sort()
然后索引这些; data [5] [0]是日期,data [5] [1]是字典值。
如果您需要保留原始日期格式,请使用仅解析日期格式进行排序;这是上面使用排序键的单行变体:
data = sorted(yourdict.items(),
key=lambda i: datetime.datetime.strptime(i[0], '%d.%m.%Y'))
在这里,我使用sorted()
function进行艰苦的工作,key
lambda获取每个日期字符串,将其转换为datetime.datetime
实例,仅用于排序目的。我没有像第一个例子那样将此限制为datetime.date
实例。