2024-09-29 02:24:50 发布
网友
string =["age 12, city1, 10", "age 0, city4, 2", "age 16, city3, 8", "age 9, city2, 1", ]
我需要根据他们的年龄对名单进行排序
您可以使用regex:
regex
import re ... string.sort(key=lambda x: int(re.findall(r'(\d+)',re.findall(r'age (\d+)',x)[0])[0]))
或通过:
string.sort(key=lambda x: int(re.findall(r'age (\d+)',x.split(',')[0])[0]))
两种输出:
['age 0, city4, 2', 'age 9, city2, 1', 'age 12, city1, 10', 'age 16, city3, 8']
使用lambda函数
lambda
年龄编号始终从第5个字符开始,并且,是终止字符。提取该数字并对其进行排序
,
string.sort(key=lambda x: int(x[4:x.index(',')])) print(string)
您可以将lambda函数传递给sorted内置函数的key参数。在lambda函数中,精确拆分,上的值一次,然后取第一个值,在空间上再次拆分,然后取最后一个值,将其转换为int
sorted
key
int
>>> sorted(string, key=lambda x: int(x.split(',', maxsplit=1)[0].split(' ')[-1])) ['age 0, city4, 2', 'age 9, city2, 1', 'age 12, city1, 10', 'age 16, city3, 8']
您可以使用
regex
:或通过:
两种输出:
使用
lambda
函数年龄编号始终从第5个字符开始,并且
,
是终止字符。提取该数字并对其进行排序您可以将
lambda
函数传递给sorted
内置函数的key
参数。在lambda函数中,精确拆分,
上的值一次,然后取第一个值,在空间上再次拆分,然后取最后一个值,将其转换为
int
相关问题 更多 >
编程相关推荐