gpt4 book ai didi

python - 在python中按其子字符串数值对字符串进行排序

转载 作者:太空宇宙 更新时间:2023-11-04 10:24:19 24 4
gpt4 key购买 nike

我有一个字符串列表,需要使用两个子字符串作为 int 键按数字顺序排序。显然使用 sort()函数按字母顺序排列我的字符串,所以我得到 1,10,2...这显然不是我要找的。

四处搜索我发现一个关键参数可以传递给 sort()函数,并使用 sort(key=int)应该可以解决问题,但是作为我的 key ,子字符串而不是整个字符串应该会导致转换错误。

假设我的字符串是这样的:

test1txtfgf10
test1txtfgg2
test2txffdt3
test2txtsdsd1

我希望我的列表根据第一个整数和第二个整数按数字顺序排序,所以我会:

test1txtfgg2
test1txtfgf10
test2txtsdsd1
test2txffdt3

我想我可以提取整数值,仅对它们进行排序,跟踪它们属于哪个字符串,然后对字符串进行排序,但我想知道是否有一种方法可以更高效、更优雅地完成这件事。

提前致谢

最佳答案

尝试以下操作

In [26]: import re

In [27]: f = lambda x: [int(x) for x in re.findall(r'\d+', x)]

In [28]: sorted(strings, key=f)
Out[28]: ['test1txtfgg2', 'test1txtfgf10', 'test2txtsdsd1', 'test2txffdt3']

这使用正则表达式(re module)查找每个字符串中的所有整数,然后是compares the resulting lists .例如,f('test1txtfgg2') 返回 [1, 2],然后将其与其他列表进行比较。

关于python - 在python中按其子字符串数值对字符串进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30344045/

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