【发布时间】:2017-05-31 17:43:24
【问题描述】:
我有一本像这样的字典:
d1= {'a':[1, 5], 'b':[2, 23], 'c':[99,12]}
在字典有两个值的列表之前,我可以这样排序:
for key in sorted(mydict, key=mydict.get, reverse=True):
print key.rstrip() + " : " + str(mydict[key])
这实际上仍然适用于列表中的 first 值,但它对第二个值没有任何作用:
c : [99, 12]
b : [2, 23]
a : [1, 5]
如何改为按列表中的第二个值排序?如果我这样选择,如何按第二个值然后按第一个值排序,反之亦然?
【问题讨论】:
-
字典没有顺序:你不能对字典进行排序。您只能将其转换为列表。
-
一个好的指南是Python: "Sorting HOW TO"
-
您可以使用有序字典(来自“集合”)来确保键和值按某种顺序排列。否则不能保证订单被保留。
-
当然,没关系。为了对字典进行排序,我实际上必须将其转换为列表并在那里进行排序。这就是我用来排序的代码吗?
标签: python list sorting dictionary key-value