Python:按排序值迭代字典键

Jes*_*Dow 3 python iteration dictionary

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

例:

myDict = {ID1: 50, ID2: 40, ID3: 60}
Run Code Online (Sandbox Code Playgroud)

我想以某种方式做到这一点:

for keyCorrespondingToTheValue in sorted(myDict.values()):
Run Code Online (Sandbox Code Playgroud)

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

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

Bru*_*lza 6

for key in sorted(myDict, key=myDict.get)
Run Code Online (Sandbox Code Playgroud)


小智 5

你可以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'
>>>
Run Code Online (Sandbox Code Playgroud)

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

您可能还想阅读文档中的排序方法,以更好地了解如何使用sortedkey