列表中 数字+字符 组合排序方法

# 列表中 数字+字符 组合排序方法
wk = ['14周', '18周', '15周', '17周', '16周']
import re
def tryint(s):                  # 将元素中的数字转换为int后再排序
try:
return int(s)
except ValueError:
return s
 
def str2int(v_str):             # 将元素中的字符串和数字分割开
return [tryint(sub_str) for sub_str in re.split('([0-9]+)', v_str)]
 
def sort_humanly(v_list):       # 以分割后的list为单位进行排序
return sorted(v_list, key=str2int)
 
wk = sort_humanly(wk)
wk =['14周', '15周', '16周', '17周', '18周']
posted @ 2020-05-22 16:48  daochi  阅读(477)  评论(0编辑  收藏  举报