一维数组
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)
输出
['8:00', '9:00', '10:00', '11:00', '13:30', '14:30', '15:30', '16:30']
二维数组
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 = ['星期一', '星期二', '星期三', '星期四', '星期五']
# 排序 一维按照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 后再升序排序
['星期一', '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', '化学']
标签:11,10,00,30,自定义,Python,45,arr,sorted From: https://www.cnblogs.com/yxyun/p/16823942.html