一种解决方法是使用Python的sorted()函数和lambda函数来对字符串列表进行排序。首先,使用lambda函数从每个字符串中提取数字,并将其作为排序的关键字。然后,使用sorted()函数对字符串列表进行排序。
以下是一个示例代码:
str_list = ['abc2', 'def5', 'ghi1', 'jkl3']
sorted_list = sorted(str_list, key=lambda s: int(''.join(filter(str.isdigit, s))))
print(sorted_list)
输出结果为:['ghi1', 'abc2', 'jkl3', 'def5']
在此示例中,lambda函数lambda s: int(''.join(filter(str.isdigit, s)))
用于从每个字符串中提取数字。对于每个字符串,filter(str.isdigit, s)
将返回一个只包含数字字符的迭代器,然后''.join()
将这些数字字符连接成一个字符串。最后,使用int()
将这个字符串转换为整数。
sorted()函数使用lambda函数返回的整数作为排序的关键字,对字符串列表进行排序。最后,将排序后的列表打印出来。
注意:这里的示例代码假定每个字符串中都只包含一个数字,并且数字的位置是固定的。如果字符串中有多个数字或数字的位置不固定,可能需要进行适当的修改。
上一篇:按每个值在mysql中计数