gpt4 book ai didi

python - 使用特定方法对字符串列表进行排序

转载 作者:行者123 更新时间:2023-11-28 20:57:01 25 4
gpt4 key购买 nike

假设我有一个这样的字符串列表

L = ['5', '3', '4', '1', '2', '2 3 5', '2 4 8', '5 22 1 37', '5 22 1 22', '5 22 1 23', ....]

我怎样才能对这个列表进行排序,这样我就会得到这样的东西:

L = ['1', '2', '3','4', '5', '2 3 5', '2 4 8', '5 22 1 22', ' 5 22 1 23', '5 22 1 37', ...]

基本上我需要根据 2 个字符串之间的第一个不同数字对列表进行排序

最佳答案

您可以使用元组进行排序:

L = ['5', '3', '4', '1', '2', '2 3 5', '2 4 8', '5 22 1 37', '5 22 1 22', '5 22 1 23']

result = sorted(L, key=lambda x: (len(x.split()),) + tuple(map(int, x.split())))

print(result)

输出

['1', '2', '3', '4', '5', '2 3 5', '2 4 8', '5 22 1 22', '5 22 1 23', '5 22 1 37']

想法是使用元组作为键,其中第一个元素是字符串中数字的数量,其余元素是数字元组。例如对于 '2 3 5' 键是 (3, 2, 3, 5)

正如@PM2Ring 所建议的,您可以使用 def 函数而不是 lambda:

def key(x):
numbers = tuple(map(int, x.split()))
return (len(numbers),) + numbers

关于python - 使用特定方法对字符串列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53885990/

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