gpt4 book ai didi

python - 如何在 python 排序(列表)中指定 2 个键?

转载 作者:IT老高 更新时间:2023-10-28 21:16:13 24 4
gpt4 key购买 nike

如何先按 key=len 然后按 key=str 对字符串列表进行排序?我尝试了以下方法,但没有给我想要的排序:

>>> ls = ['foo','bar','foobar','barbar']
>>>
>>> for i in sorted(ls):
... print i
...
bar
barbar
foo
foobar
>>>
>>> for i in sorted(ls, key=len):
... print i
...
foo
bar
foobar
barbar
>>>
>>> for i in sorted(ls, key=str):
... print i
...
bar
barbar
foo
foobar

我需要得到:

bar
foo
barbar
foobar

最佳答案

定义一个返回元组的键函数,其中第一项是len(str),第二项是字符串本身。然后按字典顺序比较元组。也就是说,首先比较长度;如果它们相等,则比较字符串。

In [1]: ls = ['foo','bar','foobar','barbar']

In [2]: sorted(ls, key=lambda s: (len(s), s))
Out[2]: ['bar', 'foo', 'barbar', 'foobar']

关于python - 如何在 python 排序(列表)中指定 2 个键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16515737/

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