python编写代码的字典帮助

时间:2012-07-16 00:48:22

标签: python dictionary

我有一个关于在字典上编写代码的问题我已完成编码,但我对其中的一部分感到困惑,这就是它所说的参数名称是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

1 个答案:

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

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