python,按大小从字典中读取键,绘制它们

python, read keys from dict by size, to plot them

我有一个 python 字典,其中包含未排序的 key/value 对,其中键是日期时间,值是整数。

{"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

中运行的选项,那将是最好的

这或多或少是您要找的东西吗?

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

使用 lambda 作为键将每个键转换为日期时间对象:

 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

根据您的评论,如果您实际上已经有了 datetime 对象,那么您只需简单地排序:

    for k in sorted(d):
        print(k, d[k])

你可以做到,

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]

干杯!