Python——sorted自定义对一维二维数组排序
1 | list = sorted(iterable, key=None, reverse=False) |
iterable 表示指定的序列,key 参数可以自定义排序规则;reverse 参数指定以升序(False,默认)进行排序。
一维数组
1 2 3 4 | arr = [ '15:30' , '16:30' , '10:00' , '8:00' , '9:00' , '13:30' , '14:30' , '11:00' ] # 使用lamda自定义规则进行排序 sort_arr = sorted(arr, key=lambda x: int(x.split( ':' )[0]*60)+int(x.split( ':' )[1])) print(sort_arr) |
输出
1 | [ '8:00' , '9:00' , '10:00' , '11:00' , '13:30' , '14:30' , '15:30' , '16:30' ] |
二维数组
1 2 3 4 5 6 7 8 9 10 11 | weekday = [ '星期一' , '星期二' , '星期三' , '星期四' , '星期五' ]arr = [[ '星期一' , '8:00' , '8:45' , '语文' ], [ '星期二' , '10:00' , '10:45' , '生物' ], [ '星期二' , '11:00' , '11:45' , '化学' ], [ '星期五' , '11:00' , '11:45' , '化学' ], [ '星期一' , '9:00' , '9:45' , '数学' ], [ '星期一' , '10:00' , '10:45' , '英语' ], [ '星期一' , '11:00' , '11:45' , '化学' ], [ '星期三' , '13:30' , '14:15' , '语文' ], [ '星期四' , '10:00' , '10:45' , '物理' ], [ '星期三' , '8:00' , '8:45' , '物理' ], [ '星期三' , '9:00' , '9:45' , '生物' ], [ '星期三' , '10:00' , '10:45' , '英语' ]] # 排序 一维按照weekday index升序,二维将数据转换为数字如 8:00 => 8*60+00=480 后再升序排序) arr_sort = sorted(arr, key=lambda x: (weekday.index(x[0]), int(x[1].split( ':' )[0])*60+int(x[1].split( ':' )[1]))) for val in arr_sort: print(val) |
输出 : 一维按照weekday index升序,二维将数据转换为数字如 8:00 => 8*60+00=480 后再升序排序
1 2 3 4 5 6 7 8 9 10 11 12 | [ '星期一' , '8:00' , '8:45' , '语文' ] [ '星期一' , '9:00' , '9:45' , '数学' ] [ '星期一' , '10:00' , '10:45' , '英语' ] [ '星期一' , '11:00' , '11:45' , '化学' ] [ '星期二' , '10:00' , '10:45' , '生物' ] [ '星期二' , '11:00' , '11:45' , '化学' ] [ '星期三' , '8:00' , '8:45' , '物理' ] [ '星期三' , '9:00' , '9:45' , '生物' ] [ '星期三' , '10:00' , '10:45' , '英语' ] [ '星期三' , '13:30' , '14:15' , '语文' ] [ '星期四' , '10:00' , '10:45' , '物理' ] [ '星期五' , '11:00' , '11:45' , '化学' ] |
标签:
python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)