2

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

%d.%m.%Y

IE。“5.11.2008”。日期每天都有相应的数据。

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

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

4

1 回答 1

4

将键转换为datetime.date值;using.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()函数来完成繁重的工作,keylambda 获取每个日期字符串,将其转换为datetime.datetime实例,仅用于排序目的。我不会像第一个示例那样将其限制为一个datetime.date实例。

于 2012-08-02T10:46:36.947 回答