Python 列表内【自定义排序】

数字

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’, ‘性别:女’, ‘兴趣:数学’]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值