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', '化学']

 

posted @   yx啦啦啦  阅读(321)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
欢迎这位客官来到《Python——sorted自定义对一维二维数组排序 - yx啦啦啦 - 博客园》
点击右上角即可分享
微信分享提示