Python 列表内【自定义排序】

借助元组

示例:按照【学号、姓名、性别、年龄】顺序进行排序

# 待排序列表
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', '性别:女', '兴趣:数学']

猜你喜欢

转载自blog.csdn.net/Yellow_python/article/details/81171502
今日推荐