包含数字的列表排序的时候很麻烦,不一定按照数字大小排序,下面这个匿名函数可以解决问题
In [ ]:
import re
a = [1, '1b', 2, '2b', 0, 4, '4b', '3b']
a.sort(key=lambda test_string: list(map(int, re.findall(r'\d', str(test_string))))[0])
a
Out[ ]:
[0, 1, '1b', 2, '2b', '3b', 4, '4b']
使用了findall()提取了数字, \d找的是一个对象为十进制整数
In [ ]:
Out[ ]:
[1, '1b', 2, '2b']
In [ ]:
最后一次修改于 2020-09-12