如何在Python中对字母数字值进行排序?

时间:2019-02-07 19:08:21

标签: python arrays python-3.x python-2.7 list

我目前正在构建一个程序,想知道如何根据最小到最大的数字对字母数字列表进行排序。

array1 = ["14f","9c","2d","7a"]

我希望数字可以像这样[[2d“,” 7a“,” 9c“,” 14f“]进行排序

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以将sorted与自定义key函数一起使用,以便对列表进行排序:

import re
sorted(array1, key = lambda x: int(re.search(r'\d+', x)[0]))
# ['2d', '7a', '9c', '14f']

此自定义key函数使用re.search在每个字符串中提取数字的地方:

[int(re.search(r'\d+', i)[0]) for i in array1] 
# [14, 9, 2, 7]