gpt4 book ai didi

python - 根据数字对混合字符串列表进行排序

转载 作者:太空狗 更新时间:2023-10-29 22:08:58 26 4
gpt4 key购买 nike

如何通过数值对这个列表进行排序?是否需要正则表达式来删除数字,或者是否有更 Pythonic 的方法来执行此操作?

to_sort

['12-foo',
'1-bar',
'2-bar',
'foo-11',
'bar-3',
'foo-4',
'foobar-5',
'6-foo',
'7-bar']

期望的输出如下:

1-bar
2-bar
bar-3
foo-4
foobar-5
6-foo
7-bar
foo-11
12-foo

最佳答案

一种解决方案是以下正则表达式提取:

sorted(l, key=lambda x: int(re.search('\d+', x).group(0)))

>>> l
['12-foo', '1-bar', '2-bar', 'foo-11', 'bar-3', 'foo-4', 'foobar-5', '6-foo', '7-bar']
>>> sorted(l, key=lambda x: int(re.search('\d+', x).group(0)))
['1-bar', '2-bar', 'bar-3', 'foo-4', 'foobar-5', '6-foo', '7-bar', 'foo-11', '12-foo']

key 是提取的数字(转换为 int 以避免按字典顺序排序)。

关于python - 根据数字对混合字符串列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39129846/

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