首页 > 编程语言 >Python——sorted自定义对一维二维数组排序

Python——sorted自定义对一维二维数组排序

时间:2022-10-25 10:11:15浏览次数:54  
标签:11 10 00 30 自定义 Python 45 arr sorted

一维数组

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

相关文章

  • Python字典介绍
    微信公众号:IT邦德字典是“键值对”的无序可变序列,字典中的每个元素都是一个“键值对”,包含:“键对象”和“值对象”。可以通过“键对象”实现快速获取、删除、更新对应的“......
  • python字符串的格式化
    微信公众号:IT邦德1、format()基本用法Python2.6开始,新增了一种格式化字符串的函数str.format(),它增强了字符串格式化的功能。基本语法是通过{}和:来代替以前的%......
  • Python为什么叫爬虫?
    因为python的脚本特性和易于配置,对字符的处理也非常灵活,加上python有丰富的网络抓取模块,所以叫爬虫。1、网络爬虫是指一种按照一定的规则,自动地抓取万维网信息的程序或者脚......
  • python爬虫可以做什么呢?
    1、收集数据Python爬虫程序可用于收集数据,这是最直接和最常用的方法。由于爬虫程序是一个程序,程序运行得非常快,不会因为重复的事情而感到疲倦,因此使用爬虫程序获取大量数据......
  • python爬虫需要什么基础?
    学习Python基础知识并实现基本的爬虫过程一般获取数据的过程都是按照发送请求-获得页面反馈-解析并且存储数据这三个流程来实现的。这个过程其实就是模拟了一个人工浏览网......
  • 记一次springboot项目自定义HandlerMethodArgumentResolver不生效原因与解法
    前言本文素材的来源自业务部门技术负责人一次代码走查引发的故事,技术负责人在某次走查成员的代码时,发现他们的业务控制层大量充斥着如下的代码@PostMapping("add")p......
  • 模拟实现用户购买商品的功能,使用数组模拟商品列表,当购买的商品不存在或者商品库存为0
    publicstaticScannerinput;publicstaticGoods[]goods;//创建一个Goods对象数组static{input=newScanner(System.in);goods=newGoods[3];//将对象放在......
  • python-十九课 购物车
    importosimportjsonimporttimebase_dir=os.path.dirname(os.path.dirname(file))#dirname获取当前文件所在的目录路径,嵌套使用就是获取上一级的路径db_dir=......
  • python3使用mutagen进行音频元数据处理
    python版本:python3.9  mutagen版本:1.46.0mutagen是一个处理音频元数据的python模块,支持多种音频格式,是一个纯粹的python库,仅依赖python标准库,可在Python3.7及以上版......
  • ZABBIX使用自定义监控项进行监控
    我的zabbix-server是安装在另一台虚拟机上的,用来监控下图中的这台虚拟机先修改zabbix的客户端配置文件,增加UserParameter那行,这里我只是用来测试,所以就随便起了一个名为pin......