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]
干杯!
我有一个 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]
干杯!