gpt4 book ai didi

python - 自定义排序的字典列表 Python

转载 作者:太空宇宙 更新时间:2023-11-03 13:01:05 24 4
gpt4 key购买 nike

我有一个字典列表:

ldicts = [{'name': '120-150'}, {'name': '90-120'}, {'name': '150-180'}, {'name': '>= 180'}, {'name': '<90'}, {'name': 'total'}]

我想按值升序对它进行排序,以便输出如下所示:

 sortedldicts = [{'name': 'total'}, {'name': '<90'}, {'name': '90-120'},{'name': '120-150'}, {'name': '150-180'}, {'name': '>= 180'}]

普通排序不起作用:

from operator import itemgetter
sortedldicts = sorted(ldicts , key=itemgetter('name'), reverse=True)

所以我假设我应该做一个自定义排序?任何提示或帮助将不胜感激。

最佳答案

使用 re.findall 提取数字:

>>> ldicts = [{'name': '120-150'}, {'name': '90-120'}, {'name': '150-180'}, {'name': '>= 180'}, {'name': '<90'}, {'name': 'total'}]
>>>
>>> import re
>>> sorted(ldicts, key=lambda d: map(int, re.findall(r'\d+', d['name'])))
[{'name': 'total'}, {'name': '<90'}, {'name': '90-120'}, {'name': '120-150'}, {'name': '150-180'}, {'name': '>= 180'}]
  • 如果您使用 Python 3.x,请将 map(int, ...) 替换为 list(map(int, ...))

关于python - 自定义排序的字典列表 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20899401/

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