我有一个关于在字典上编写代码的问题我已完成编码,但我对其中的一部分感到困惑,这就是它所说的参数名称是sort_by_value:“({immutable_type:int}的词典) - > list “和描述是”返回字典中的键列表,按照它们的值按升序排序。具有相同值的键可以按任何顺序排序。“
我写的代码是
def sort_by_value(dict):
"""
(dict of {immutable_type:int}) -> list """
L = []
for x in dict.values():
L.append(x)
L.sort()
print L
此代码仅使用值来提升它,例如,如果我有字典
nd = {}
nd['john'] = 109090
nd['albert'] = 1900
nd['Tim'] = 18000
sort_by_value(nd)
我得到了列表[1900,18000,109090],但我需要获得与这些值相关联的键,如我想要的''albert','Tim','john']
我尝试尝试尝试尝试引入另一个for循环 在Print L之前我想写
keyList= []
for x in L:
keyList.append(dict.get())
if
但我不知道这是否有效请求helppp
答案 0 :(得分:1)
您可以使用内置的排序函数来对该字典的元组进行排序。
nd = {}
nd['john'] = 109090
nd['albert'] = 1900
nd['Tim'] = 18000
print sorted(nd.items(), key=lambda x: x[1])
将返回:
[('albert', 1900), ('Tim', 18000), ('john', 109090)]
如果您只想获取密钥:
print map(lambda x: x[0], sorted(nd.items(), key=lambda x: x[1]))
会给你:
['albert', 'Tim', 'john']