gpt4 book ai didi

python 3 : Make itemgetter sort by string length

转载 作者:行者123 更新时间:2023-11-28 22:45:59 25 4
gpt4 key购买 nike

我正在使用下面的代码行按特定键的值对字典列表进行排序。该代码确实执行了所需的排序。但是,它按字母数字顺序而不是字符串长度排序。如何更改 itemgetter 的行为并使其按长度排序?

sorted(DATABASE, key=itemgetter('SPECIAL_KEY'), reverse=True)

注意:在脚本中,itemgetter 是通过“from operator import itemgetter”导入的。

编辑:下面是我试图排序的一些示例数据。

未分类:

DATABASE = [
{'SPECIAL_KEY': 'LONG STRING', 'VARIOUS':'DATA'},
{'SPECIAL_KEY': 'SHORT STRING', 'VARIOUS':'DATA'},
{'SPECIAL_KEY': 'VERY LONG STRING', 'VARIOUS':'DATA'},
{'SPECIAL_KEY': 'MEDIUM STRING', 'VARIOUS':'DATA'},
]

期望:

DATABASE = [
{'SPECIAL_KEY': 'VERY LONG STRING', 'VARIOUS':'DATA'},
{'SPECIAL_KEY': 'LONG STRING', 'VARIOUS':'DATA'},
{'SPECIAL_KEY': 'MEDIUM STRING', 'VARIOUS':'DATA'},
{'SPECIAL_KEY': 'SHORT STRING', 'VARIOUS':'DATA'},
]

最佳答案

你需要传递一个自定义函数来做到这一点:

sorted(DATABASE, key=lambda x: len(x['SPECIAL_KEY']), reverse=True)

要就地排序列表,您需要使用 list.sort而不是 sorted(sorted 返回一个新列表):

DATABASE.sort(key=lambda x: len(x['SPECIAL_KEY']), reverse=True)

关于 python 3 : Make itemgetter sort by string length,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27994842/

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