Python按字符串的数字部分对给定的字符串列表进行排序
当需要按字符串的数字部分对给定的字符串列表进行排序时,使用正则表达式和'findall'方法。
示例
以下是相同的演示-
import re def my_num_sort(my_str): return list(map(int, re.findall(r'\d+', my_str)))[0] my_list = ["pyth42on", '14is', '32fun', '89to', 'lea78rn'] print("名单是:") print(my_list) my_list.sort(key=my_num_sort) print("结果是:") print(my_list)输出结果
名单是: ['pyth42on', '14is', '32fun', '89to', 'lea78rn'] 结果是: ['14is', '32fun', 'pyth42on', 'lea78rn', '89to']
解释
所需的包被导入到环境中。
定义了一个将字符串作为参数的方法。
它使用“findall”方法来查找特定模式的匹配项。
使用“map”方法将其转换为字符串,然后转换为“列表”。
这作为方法的输出返回。
在该方法之外,一个字符串列表被定义并显示在控制台上。
该列表根据之前定义的方法根据键进行排序。
此列表显示为控制台上的输出。