Python3:日期字符串按时间顺序排列

时间:2012-08-02 10:42:16

标签: python date python-3.x matplotlib

我有一个字典,其中的键是日期字符串。格式为:

%d.%m.%Y

即。 “2008年5月11日”。这些日期每天都有相应的数据。

最简单的方法是将它们收集到两个列表中,一个用于键,一个用于值,列表按时间顺序排列,键[5]对应于值[5]?

我最终想要实现的是获取这些日期和值并相应地绘制它们。我现在正在使用matplotlib。

1 个答案:

答案 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实例。