按不同顺序的多个键对字典列表进行排序

Pet*_*ryl 16 python sorting dictionary list python-2.7

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

[ {K: 1, B: 2, A: 3, Z: 4, ... } , ... ] 
Run Code Online (Sandbox Code Playgroud)

订购应该是:

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

我只发现了如何按升序或降序(reverse=True)排序所有键:

stats.sort(key=lambda x: (x['K'], x['B'], x['A'], x['Z']))
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助,如何按键不同的顺序排序?

Rom*_*kar 15

如果您将数字作为值,则可以使用:

stats.sort(key=lambda x: (-x['K'], -x['B'], x['A'], x['Z']))
Run Code Online (Sandbox Code Playgroud)

对于一般值:

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