sort values and return list of keys from dict python
Possible Duplicate:
Python: Sort a dictionary by value
我有一本这样的字典:
1
| A = {'Name1':34, 'Name2': 12, 'Name6': 46,....} |
我想要一个按值排序的键列表,即[Name2, Name1, Name6....]。
谢谢!!!!
- 谢谢你的建议@felix,但是我在问之前已经搜索过了,答案不是我需要的。
- 我不同意,有很多类似的问题和你正在寻找的答案。例如,我链接到的问题中的第二个最高投票答案提供了与此处最高投票答案相同的解决方案,或者这些答案。你可能需要尝试一些东西,但问题肯定已经在这里了。
- "答案不是我需要的"。无用的陈述。现有答案中缺少什么?它们是如何不完整或误导的?是什么让你的问题与众不同?请具体说明。
使用sorted和get方法作为键(可以通过迭代访问字典键):
- 这是不正确的,因为它只对键进行排序,而不是根据键的值对键进行排序。
- 但这样,返回一个按键排序的列表。我需要按值排序的键列表。:)
- @大卫·沃尔夫,噢,你说得对。固定的。
使用sorted的key参数
sorted(a.keys(), key=a.get)
这将对键进行排序,对于每个键,使用a.get查找要用作其排序值的值。
- 注意,不需要使用a.keys,它列出了键。a或a.iterkeys()已经是一个比dict a的键更重要的词了。
- 是的,我知道这是不必要的,但我觉得它读起来更好。我认为听写是成对的容器,而不是钥匙的容器。
我会用:
1 2 3
| items = dict.items()
items.sort(key=lambda item: (item[1], item[0]))
sorted_keys = [ item[0] for item in items ] |
sort的key参数是一个可调用的,它返回要使用的sort键。在这种情况下,我返回一个(value, key)的元组,但如果您愿意,您可以只返回值(即key=lambda item: item[1])。