借助元组
示例:按照【学号、姓名、性别、年龄】顺序进行排序
# 待排序列表
ls1 = ['姓名:ArYe', '性别:女', '学号:01', '兴趣:数学']
# 自定义排序函数
def custom_sort(ls):
sort_rule = [('学号', 0), ('姓名', 1), ('性别', 2), ('年龄', 3), ('', 4)]
sort_ls = []
for i in ls:
for rule in sort_rule:
if rule[0] in i:
sort_ls.append((rule[1], i))
break
print('排序前:', sort_ls)
sort_ls.sort()
print('排序后:', sort_ls)
return [i[1] for i in sort_ls]
# 打印排序结果
print('排序结果', custom_sort(ls1))
打印结果
排序前: [(1, '姓名:ArYe'), (2, '性别:女'), (0, '学号:01'), (4, '兴趣:数学')]
排序后: [(0, '学号:01'), (1, '姓名:ArYe'), (2, '性别:女'), (4, '兴趣:数学')]
排序结果 ['学号:01', '姓名:ArYe', '性别:女', '兴趣:数学']