python2排序
python list cmp排序
对于list的排序一般使用cmp
示例:
sorted(xxlist, cmp=self.sortFunc)
def sortFunc(self, a, b):
return a - b
返回值代表的顺序和lua与C#是一致的,可见我之前的博客《c#_sort排序函数的返回值 - 赵青青 - 博客园 (cnblogs.com)》
| 值 | 含义 |
|---|---|
| 小于零 | left在right的前面 |
| 零 | 位置不变 |
| 大于零 | right在left的前面 |
不过python3丢弃掉这这种用法了
对python dict排序
python中对dict排序一般有两种方法:
- 使用lambda
- 使用itemgetter
lambda排序
list中的元素是个dict
list.sort(cmp=lambda x,y: cmp(x.get('rank'), y.get('rank')))
Itemgetter对dict的多个key排序
from operator import itemgetter
record_data_list = [ record for record in record_data.values() if record.get('role', '') ]
record_data.sort(key=itemgetter('kill', 'dmg', 'heal'), reverse=True) # 按击杀, 伤害到治疗排名
可以使用 Itemgetter 代替 lambda 函数来实现类似的功能。输出方式与 sorted() 和 lambda 相同,但内部实现不同。它获取字典的键并将它们转换为元组。它减少了开销,速度更快,效率更高。必须导入“运算符”模块才能正常工作(from operator import itemgetter)
- 性能:itemgetter 在时间上下文中比 lambda 函数表现更好。
- 简洁: :在访问多个值时,itemgetter 看起来比 lambda 函数更简洁。
Ways to sort list of dictionaries by values in Python – Using itemgetter - GeeksforGeeks
排在最前面
对于想把某个数排在最前面,我建议不要用排序了,直接从列表中删除它,再往首位添加才是最快的。
python2排序的更多相关文章
- 【原创】基于日志增量,统计qps,并基于ip排序
增量统计日志行数(只统计上一秒) dns_qps.py #!/usr/bin/env python #_*_coding:utf-8_*_ import datetime import re impo ...
- Python list列表的排序
当我们从数据库中获取一写数据后,一般对于列表的排序是经常会遇到的问题,今天总结一下python对于列表list排序的常用方法: 第一种:内建函数sort() 这个应该是我们使用最多的也是最简单的排序函 ...
- python sorted排序
python sorted排序 Python不仅提供了list.sort()方法来实现列表的排序,而且提供了内建sorted()函数来实现对复杂列表的排序以及按照字典的key和value进行排序. s ...
- Python2.4-原理之函数
此节来自于<Python学习手册第四版>第四部分 一.函数基础 函数的作用在每个编程语言中都是大同小异的,,这个表是函数的相关语句和表达式. 1.编写函数,a.def是可执行代码,pyth ...
- Python2.6-原理之类和oop(下)
来自<python学习手册第四版>第六部分 五.运算符重载(29章) 这部分深入介绍更多的细节并看一些常用的重载方法,虽然不会展示每种可用的运算符重载方法,但是这里给出的代码也足够覆盖py ...
- 【转】Python 列表排序
很多时候,我们需要对List进行排序,Python提供了两个方法 对给定的List L进行排序, 方法1.用List的成员函数sort进行排序 方法2.用built-in函数sorted进行排序(从2 ...
- 使用Python在2M内存中排序一百万个32位整数
译言网 | 使用Python在2M内存中排序一百万个32位整数 使用Python在2M内存中排序一百万个32位整数 译者:小鼠 发表时间:2008-11-13浏览量:6757评论数:2挑错数:0 作者 ...
- python 使用内置函数sorted对各种数据类型进行排序
python有两个内置的函数用于实现排序,一个是list.sort()函数,一个是sorted()函数. 区别1:list.sort()函数只能处理list类型数据的排序:sorted()则可以处理多 ...
- Python实现八大排序算法(转载)+ 桶排序(原创)
插入排序 核心思想 代码实现 希尔排序 核心思想 代码实现 冒泡排序 核心思想 代码实现 快速排序 核心思想 代码实现 直接选择排序 核心思想 代码实现 堆排序 核心思想 代码实现 归并排序 核心思想 ...
- day 14 三元运算符,列表字典推导式,递归,匿名函数,内置函数(排序,映射,过滤,合并)
一.三元运算符 就是if.....else..... 语法糖 前提:if和else只有一条语句 #原始版 cmd=input('cmd') if cmd.isdigit(): print('1') e ...
随机推荐
- Django rest_framework使用自定义异常
完整代码 https://gitee.com/mom925/django-system 在settings.py中配置 REST_FRAMEWORK = { "EXCEPTION_HANDL ...
- Mysql--编译安装5.7版本
1 安装环境 1)清除以往mysql残留痕迹(新机不用) yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y userdel ...
- C#9.0:Init
背景 在以前的C#版本里面,如果需要定义一个不可修改的的类型的做法一般是:声明为readonly,并设置为只包含get访问器,不包含set访问器.如下: 1 public class PersonIn ...
- WSL2 配置 ArchLinux 初始化环境
这篇文章针对的是在 Win11 系统的 WSL2 下安装 ArchLinux 系统, 网上很多中文教程都是使用 LxRunOffline 去做的,但是实际上该方法已经过时了,目前有更加先进的ArchW ...
- 共享内存原理与VCS监控采集实战
作者:cluo 一.前言 共享内存广泛用于Redis,Kafka,RabbitMQ 等高性能组件中,本文主要提供一个共享内存在广告埋点数据采集的实战场景. 二.共享内存原理 1.原理 在Linux中, ...
- 一键在线获取APP公钥、包名、签名及备案信息方法介绍
目录 一键在线获取APP公钥.包名.签名及备案信息方法介绍 摘要 引言 一键获取APP包信息 操作步骤 编辑 解析报告 总结 致谢 关键词 参考资料 声明 摘要 本文介绍了一款在线APP解析工具 ...
- django动态创建表和动态选择实体
开发有时需要动态创建表,创建完成后需要动态选择model对应的表,该需求如何实现 1.model层 TestBlock为了动态创建表.getBlockModel为了动态选择表 from djang ...
- vue 中安装使用jquery
https://www.cnblogs.com/tcz1018/p/13970479.html
- 基于java+springboot的商城网站、电子商城管理系统
该系统是基于java+springboot+vue开发的在线商城网站.是给师弟开发的课程作业.学习过程中,遇到问题可以咨询作者. 演示地址 前台地址: http://shop.gitapp.cn 后台 ...
- Vue - 父子级的相互调用
父级调用子级 父级: <script> this.$refs.child.load(); 或 this.$refs.one.load(); </script> 子级: < ...