0

我有一个关于在字典上编写代码的问题,我已经完成了编码,但我在一方面感到困惑,这就是它所说的参数名称是 sort_by_value:“({immutable_type:int} 的字典)-> 列表”和描述是“返回字典中根据其值按升序排序的键列表。具有相同值的键可以按任何顺序排序。”

我写的代码是

    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']

我确实尝试过尝试并尝试在 Print LI 想要编写之前引入另一个 for 循环

   keyList= []

    for x in L:
        keyList.append(dict.get())
        if 

但我不知道这是否可行请需要帮助

4

1 回答 1

1

您可以使用内置的 sorted 函数对该字典的元组进行排序。

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']

参考:http ://wiki.python.org/moin/HowTo/Sorting/

于 2012-07-16T01:08:04.803 回答