【问题标题】:Sort keys in dictionary by value in a list in Python在Python列表中按值对字典中的键进行排序
【发布时间】:2013-04-15 16:20:41
【问题描述】:

我见过this postthis post 以及许多其他人,但还没有完全找到我的问题的答案,也无法弄清楚。

我有一本列表字典。例如它看起来像:

Dict = {'a':[1,2,3,4], 'b':[9,8,7,6], 'c':[8,5,3,2]}

我想返回基于列表中特定项目排序(降序/反向)的键列表。例如,我想根据每个列表中的第 4 项对 a,b,c 进行排序。

这应该返回列表sorted_keys = ['b','a','c'],它按值[6,4,2] 排序。

有意义吗?请帮忙...谢谢!

【问题讨论】:

    标签: python list sorting dictionary


    【解决方案1】:

    提供key 函数,lambda 最简单,倒序排序:

    sorted(Dict.keys(), key=lambda k: Dict[k][3], reverse=True)
    

    key函数告诉sorted按什么排序;给定键的值中的第 4 项。

    演示:

    >>> sorted(Dict.keys(), key=lambda k: Dict[k][3], reverse=True)
    ['b', 'a', 'c']
    

    【讨论】:

    • @MartijnPieters +1 不错的解决方案,你不需要.keys()
    猜你喜欢
    • 1970-01-01
    • 2011-01-16
    • 2019-12-30
    • 1970-01-01
    • 2021-08-25
    • 1970-01-01
    • 2014-02-11
    • 2011-02-22
    相关资源
    最近更新 更多