【发布时间】:2015-07-16 14:47:05
【问题描述】:
我正在尝试获取两个列表:一个包含日期,一个包含分数,然后将它们压缩到字典中,然后按键值排序,然后将它们返回到两个列表中(仍然排序)。我遇到的问题是字典不保留多个键值。我的代码如下:
date = ['2015/07/13', '2015/07/13', '2015/07/07', '2015/07/06',...]
#there are 59 of these dates
Scores = [9.5, 13.9, 15.5, 12.9 .... ] #There are 59 of these scores
dictionary = dict(zip(date, Scores))
d = sorted(dictionary.items())
dte = []
scr = []
for i in d:
dte.append(i[0])
scr.append(i[1])
但是,当我打印出这些列表时,长度仅为 24,而不是 59,它应该是。多个相同的键不会回来。我想知道是否有一种简单的方法可以将所有 59 个已排序元素重新放入两个列表中。我查看了其他一些类似的 python 答案,但没有一个对我有用。理想情况下,我不想为日期创建对象(除非这是最简单的方法),但是当我尝试这样做时,我不断收到错误。另外,我使用的是 Python 2.7。
【问题讨论】:
-
为什么要使用字典?您可以使用另一个列表
[[a1,b1], [a2,b2], ...] -
FWIW,将每个日期分数对保持在一起是有意义的,元组非常适合。将它们放在单独的列表中可能很危险,因为如果出现问题,列表很容易不同步。
-
我会记住这一点的!谢谢!我不再处理数据,所以我认为一切都应该很好,但如果我决定改变一些事情,我会将数据分数放在一起
标签: python list sorting dictionary key