数字
ls = [(1, 10), (0, 30), (2, 20)]
ls1 = sorted(ls) # 默认按照元组[0]号位排序
print(ls1)
ls2 = sorted(ls, key=lambda t: t[1]) # 按照元组[1]号位排序
print(ls2)
-
打印结果
-
[(0, 30), (1, 10), (2, 20)]
[(1, 10), (2, 20), (0, 30)]
中文
示例:按照【学号、姓名、性别、年龄】顺序进行排序
# 待排序列表
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’, ‘性别:女’, ‘兴趣:数学’]