我有一个包含未分类的键/值对的python dict,其中键是日期时间,值是int。
{"1.12.2015":5, "4.12.2015":3, "2.12.2015":6, ...}
我现在希望阅读按键及其值按日期排序,以便使用pyplot绘制它们。
结果应该是:
first pair:
1.12.2015 : 5
second:
2.12.2015 : 6
third:
4.12.2015 : 3
问题是,以正确的顺序获取日期和价值的最佳方法是什么。如果有一个在python 2.6中运行的选项
,那将是最好的答案 0 :(得分:3)
使用lambda作为键将每个键的变量分类到datetime对象:
from datetime import datetime
d = {"1.12.2015": 5, "4.12.2015": 3, "2.12.2015": 6}
for k in sorted(d, key=lambda x: datetime.strptime(x, "%d.%m.%Y")):
print(k, d[k])
输出:
1.12.2015 5
2.12.2015 6
4.12.2015 3
根据你的评论,如果你真的有日期时间对象,那么你只需简单地排序:
for k in sorted(d):
print(k, d[k])
答案 1 :(得分:3)
你可以这样做,
dic={"1.12.2015":5, "4.12.2015":3, "2.12.2015":6}
k = sorted(dic, key=lambda d: map(int, d.split('.')))
for i in k:
print i," : ",dic[i]
喝彩!
答案 2 :(得分:0)
这或多或少是你想要的吗?
data = {"1.12.2015":5, "4.12.2015":3, "2.12.2015":6}
from datetime import datetime
for k,v in sorted([(datetime.strptime(k, '%d.%m.%Y'), v) for k,v in data.iteritems()]):
print datetime.strftime(k, '%d.%m.%Y'), v