我需要遍历字典的键,但是按照值指定的顺序进行。
示例:
myDict = {ID1: 50, ID2: 40, ID3: 60}
我想以某种方式这样做:
for keyCorrespondingToTheValue in sorted(myDict.values()):
- >我怎样才能做到这一点?
如果该值是排名,我想按排名顺序浏览每个ID。我可以通过反转字典中的键/值来做到这一点,但我不想这样做,因为无法保证排名值是唯一的。
答案 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,以便更好地了解如何使用sorted
和key
。
答案 2 :(得分:2)
for key in sorted(myDict, key=lambda k: myDict[k]):
...