python模块operator对排序的辅助功能
一、介绍
该operator
模块导出一组与Python的内部运算符相对应的高效函数。例如,等同于表达式。函数名称是用于特殊类方法的函数名称; 为方便起见,还提供了没有前导和尾随的变体。operator.add(x, y)
x+y
__
这些函数属于执行对象比较,逻辑运算,数学运算,序列运算和抽象类型测试的类别。
模块特殊函数:都返回一个可调用对象,可以用于 map(), sorted(), itertools.groupby() 等接受一个函数对象作为参数的函数
operator.attrgetter(*attrs):返回对象的对应属性
operator.itemgetter(*items):返回对象对应位置的值,相当于 __getitem__() 方法
operator.methodcaller(name[, args...]):返回对象的对应方法函数,额外输入的 args 会作为此方法的默认参数
二、代码
import operator a = [1, 2, 3, 4, 5]
b = operator.itemgetter(1)
print(b(a)) e = {'E': 1, 'A': 2, 'B': 1, 'D': 3, 'C': 1}
res = sorted(e.items(), key=operator.itemgetter(1), reverse=True)
print(res) students = [
{"name": "maple", "age": 22, "score": 92},
{"name": "ffm", "age": 19, "score": 99},
{"name": "angel", "age": 23, "score": 82},
{"name": "tom", "age": 20, "score": 88},
{"name": "jerry", "age": 22, "score": 95}
] students_score = sorted(students, key=operator.itemgetter("score"), reverse=True)
print(students_score) class Student:
def __init__(self, name, id):
self.name = name
self.id = id def __repr__(self):
return "(%s, %s)" % (self.name, self.id) students = [Student('maple', 167), Student('ffm', 288), Student('angel', 134), Student('tom', 111), Student('jerry', 101)] students_by_id = sorted(students, key=operator.attrgetter('id'))
print(students_by_id)
#代码结果
2
[('D', 3), ('A', 2), ('E', 1), ('B', 1), ('C', 1)]
[{'name': 'ffm', 'age': 19, 'score': 99}, {'name': 'jerry', 'age': 22, 'score': 95}, {'name': 'maple', 'age': 22, 'score': 92}, {'name': 'tom', 'age': 20, 'score': 88}, {'name': 'angel', 'age': 23, 'score': 82}]
[(jerry, 101), (tom, 111), (angel, 134), (maple, 167), (ffm, 288)]
python模块operator对排序的辅助功能的更多相关文章
- Python list列表的排序
当我们从数据库中获取一写数据后,一般对于列表的排序是经常会遇到的问题,今天总结一下python对于列表list排序的常用方法: 第一种:内建函数sort() 这个应该是我们使用最多的也是最简单的排序函 ...
- python的operator.itemgetter('click')用于定义获取'click'项的函数
python的排序参见文章http://blog.csdn.net/longshenlmj/article/details/12747195 这里介绍 import operator模块 operat ...
- Python的operator.itemgetter函数和sorted函数
写这篇文章的目的是之前在<机器学习实战>用Python3实现KNN算法时用到的几个函数不太懂, 地址: 1- https://github.com/hitergelei/Self-Lear ...
- python中map的排序以及取出map中取最大最小值
map排序: 1.按key排序: items=dict.items() items.sort() sorted(dict.items(),key=lambda x:x[0],reverse=False ...
- python sort 和sorted排序
当我们从数据库中获取一写数据后,一般对于列表的排序是经常会遇到的问题,今天总结一下python对于列表list排序的常用方法: 第一种:内建方法sort() 可以直接对列表进行排序 用法: list. ...
- Python模块学习
6. Modules If you quit from the Python interpreter and enter it again, the definitions you have made ...
- python-学习笔记之-Day5 双层装饰器 字符串格式化 python模块 递归 生成器 迭代器 序列化
1.双层装饰器 #!/usr/bin/env python # -*- coding: utf-8 -*- # author:zml LOGIN_INFO = False IS_ADMIN = Fal ...
- Python模块操作
Exceptions 模块 该模块定义了以下标准异常: • Exception 是所有异常的基类. 强烈建议(但不是必须)自定义的异常异常也继承这个类. • SystemExit(Exception) ...
- 【转】利用Boost.Python将C++代码封装为Python模块
用Boost.Python将C++代码封装为Python模块 一. 基础篇 借助Boost.Python库可以将C/C++代码方便.快捷地移植到python模块当中,实现对python模块的扩 ...
随机推荐
- autocomplete调用接口数据实现
开发中遇到需要对大量数据实时搜索,频繁调取api产生的问题记录 1.每输入一个字符,就向后端发一次请求.当输入完一个人名的时候,就已经向后端发送了好多条请求,太多的请求会给服务器带来压力,其实在实时搜 ...
- day03 mysql外键 表的三种关系 单表查询 navicat
day03 mysql navicat 一.完整性约束之 外键 foreign key 一个表(关联表: 是从表)设置了外键字段的值, 对应的是另一个表的一条记录(被关联表: 是主 ...
- 28. string类中方法练习
1. 自己写trim方法 public class Demo3 { public static void main(String[] args) { System.out.println(myTrim ...
- python编程语言学习day05(1)
模块(不起与python相关模块的名字) 1.random random.random() 在0与1之间取随机数 random.randint(a,b) 在a,b之间取随机整数,包括边界 ra ...
- Quick BI 支持多种数据源进行多维分析
一.摘要 随着互联网的高速发展,数据量爆发式增长的同时,数据的存储形式也开始呈现出多样性,有结构化存储,如 Mysql, Oracle, SQLServer 等,半结构化甚至非结构化存储,如HBase ...
- noip 2014 总结
2014 年的noip 已经结束了,成绩从个人而言不是特别的理想,从今年题的逗的程度,本来是个xxx 就被玩脱了= = 当然现在后悔事没有用的了,不过第二天全屏技术的在最后一小时看到了两道题的错误,然 ...
- python从入门到大神---Python的jieba模块简介
python从入门到大神---Python的jieba模块简介 一.总结 一句话总结: jieba包是分词技术,也就是将一句话分成多个词,有多种分词模型可选 1.分词模块包一般有哪些分词模式(比如py ...
- faster-rcnn算法总结
faster-rcnn的整体流程比较复杂,尤其是数据的预处理部分,流程比较繁琐.我写faster-rcnn系列文章的目的是对该算法的原始版本有个整体的把握,如果需要使用该算法做一些具体的任务,推荐使用 ...
- 基于Netty的RPC架构学习笔记(一):NIO
文章目录 传统的socket分析 举个
- Python3 From Zero——{最初的意识:003~数字、日期、时间}
一.对数值进行取整:round(value,ndigits) >>> round(15.5,-1) #可以取负数 20.0 >>> round(15.5,0) #当 ...