Python:按排序值迭代字典键

时间:2014-11-07 20:36:13

标签: python dictionary iteration

我需要遍历字典的键,但是按照值指定的顺序进行。

示例:

myDict = {ID1: 50, ID2: 40, ID3: 60}

我想以某种方式这样做:

for keyCorrespondingToTheValue in sorted(myDict.values()):

- >我怎样才能做到这一点?

如果该值是排名,我想按排名顺序浏览每个ID。我可以通过反转字典中的键/值来做到这一点,但我不想这样做,因为无法保证排名值是唯一的。

3 个答案:

答案 0 :(得分:5)

for key in sorted(myDict, key=myDict.get)

答案 1 :(得分:4)

您可以这样排序myDict.items

>>> myDict = {'ID1': 50, 'ID2': 40, 'ID3': 60}
>>> for item in sorted(myDict.items(), key=lambda x: x[1]):
...     item
...
('ID2', 40)
('ID1', 50)
('ID3', 60)
>>> for key, _ in sorted(myDict.items(), key=lambda x: x[1]):
...     key
...
'ID2'
'ID1'
'ID3'
>>>

这里的重要部分是sorted的{​​{3}},它允许您指定每个项目的排序方式。在这种情况下,我们对每个键的值进行排序。

您可能还需要阅读文档中的key function,以便更好地了解如何使用sortedkey

答案 2 :(得分:2)

for key in sorted(myDict, key=lambda k: myDict[k]):
    ...