gpt4 book ai didi

python - 在 Python 中,我如何按字典的某个值 + 字母顺序对字典列表进行排序?

转载 作者:太空宇宙 更新时间:2023-11-03 12:43:10 25 4
gpt4 key购买 nike

好的,这就是我正在尝试做的......我知道 itemgetter() 排序可以很容易地按字母顺序排序,但是如果我有这样的东西:

[{'Name':'TOTAL', 'Rank':100}, {'Name':'Woo Company', 'Rank':15}, {'Name':'ABC Company', 'Rank':20}]

我希望它按字母顺序排序(按名称)+ 包含名称为“TOTAL”的条件应列在序列的最后,如下所示:

[{'Name':'ABC Company', 'Rank':20}, {'Name':'Woo Company', 'Rank':15}, {'Name':'TOTAL', 'Rank':100}]

我该怎么做?

最佳答案

这里最好的方法是修饰排序键...Python 将按元组组件的顺序对元组进行排序,因此根据您的排序标准构建元组键:

sorted(list_of_dicts, key=lambda d: (d['Name'] == 'TOTAL', d['Name'].lower()))

这导致排序键为:

  • {'Name': 'TOTAL', 'Rank': 100} 的(真,'总计')
  • (False, 'woo company') for {'Name': 'Woo Company', 'Rank': 15}
  • (False, 'abc company') for {'Name': 'ABC Company', 'Rank': 20}

由于 False 比 True 排得早,所以名字不是 TOTAL 的会排在一起,然后按字母排序,TOTAL 排在最后。

关于python - 在 Python 中,我如何按字典的某个值 + 字母顺序对字典列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/898773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com