【问题标题】:How to sort keys of dict by values?如何按值对dict的键进行排序?
【发布时间】:2016-05-17 07:45:01
【问题描述】:

我有一个字典{'a': 2, 'b': 0, 'c': 1}

需要按值对键进行排序,以便我可以得到一个列表['b', 'c', 'a']

有什么简单的方法吗?

【问题讨论】:

标签: python dictionary lambda


【解决方案1】:
 sorted_keys = sorted(my_dict, key=my_dict.get)

【讨论】:

    【解决方案2】:

    试试这个:

    import operator
    lst1 = sorted(lst.items(), key=operator.itemgetter(1))
    

    【讨论】:

    • 它返回 [('b', 0), ('c', 1), ('a', 2)]。关闭。
    • 现在您可以循环并打印每个键值对的第 0 个索引。因此,这是一种您甚至不会丢失键和值映射的方法。
    【解决方案3】:
    >>> d={'a': 2, 'b': 0, 'c': 1}
    >>> [i[0] for i in sorted(d.items(), key=lambda x:x[1])]
    ['b', 'c', 'a']
    

    【讨论】:

      【解决方案4】:

      有一个简单的方法来做到这一点。 您可以使用 .items() 获取键值并使用 sorted 对它们进行相应的排序。

      dictionary = sorted(dictionary.items(),key=lambda x:x[1])
      

      【讨论】:

        【解决方案5】:
        >>> d = {'a':2, 'b':0, 'c':1}
        >>> sor = sorted(d.items(), key=lambda x: x[1])
        >>> sor
        [('b', 0), ('c', 1), ('a', 2)]
        >>> for i in sor:
        ...     print i[0]
        ...
        b  
        c 
        a
        

        【讨论】:

          猜你喜欢
          • 2011-03-25
          • 1970-01-01
          • 2011-08-09
          • 2021-10-19
          • 2013-02-21
          • 2020-03-16
          • 1970-01-01
          • 2023-02-03
          • 1970-01-01
          相关资源
          最近更新 更多