【问题标题】:Sort list of dictionaries by multiple keys with different ordering按具有不同顺序的多个键对字典列表进行排序
【发布时间】:2013-09-16 16:37:45
【问题描述】:

我需要对这个字典列表进行排序:

[ {K: 1, B: 2, A: 3, Z: 4, ... } , ... ] 

顺序应该是:

  • K - 降序
  • B - 下降
  • A - 上升
  • Z - 上升

我只知道如何按升序或降序对所有键进行排序 (reverse=True):

stats.sort(key=lambda x: (x['K'], x['B'], x['A'], x['Z']))

谁能帮忙,如何按不同键排序?

【问题讨论】:

    标签: python list sorting python-2.7 dictionary


    【解决方案1】:

    如果你有数字作为值,你可以使用这个:

    stats.sort(key=lambda x: (-x['K'], -x['B'], x['A'], x['Z']))
    

    对于一般值:

    stats.sort(key=lambda x: (x['A'], x['Z']))
    stats.sort(key=lambda x: (x['K'], x['B']), reverse=True) 
    

    【讨论】:

    • 字符串值也有解决方案吗?
    猜你喜欢
    • 1970-01-01
    • 2015-04-06
    • 2013-11-02
    • 1970-01-01
    • 2022-11-18
    • 2014-02-11
    • 1970-01-01
    • 1970-01-01
    • 2018-10-24
    相关资源
    最近更新 更多