想要對一個不規則的列表進行排序:
list2 = ['4d','3v','5b','a2','7q']
使用正則表達式來做:
import re
def sort_key(s):
# 排序關鍵字匹配
# 匹配開頭數字序號
if s:
try:
c = re.findall('^\d+', s)[0]
except:
c = -1
return int(c)
list2 = ['4d','3v','5b','a2','7q']
sorted(list2,key = sort_key)
#list2.sort(key = sort_key)
#sorted函數是可以返回一個新的列表,而sort函數則是對原列表進行處理
這里對正則的地方解釋一下:^:行開頭 \d:數字 +:出現至少1次
re.findall('^\d+', s)返回的數據是:['4']加上[0]之后返回的是4,證明正則 re.findall (返回string中所有與pattern相匹配的全部字串,返回形式為數組)