一、介绍

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对排序的辅助功能的更多相关文章

  1. Python list列表的排序

    当我们从数据库中获取一写数据后,一般对于列表的排序是经常会遇到的问题,今天总结一下python对于列表list排序的常用方法: 第一种:内建函数sort() 这个应该是我们使用最多的也是最简单的排序函 ...

  2. python的operator.itemgetter('click')用于定义获取'click'项的函数

    python的排序参见文章http://blog.csdn.net/longshenlmj/article/details/12747195 这里介绍 import operator模块 operat ...

  3. Python的operator.itemgetter函数和sorted函数

    写这篇文章的目的是之前在<机器学习实战>用Python3实现KNN算法时用到的几个函数不太懂, 地址: 1- https://github.com/hitergelei/Self-Lear ...

  4. python中map的排序以及取出map中取最大最小值

    map排序: 1.按key排序: items=dict.items() items.sort() sorted(dict.items(),key=lambda x:x[0],reverse=False ...

  5. python sort 和sorted排序

    当我们从数据库中获取一写数据后,一般对于列表的排序是经常会遇到的问题,今天总结一下python对于列表list排序的常用方法: 第一种:内建方法sort() 可以直接对列表进行排序 用法: list. ...

  6. Python模块学习

    6. Modules If you quit from the Python interpreter and enter it again, the definitions you have made ...

  7. python-学习笔记之-Day5 双层装饰器 字符串格式化 python模块 递归 生成器 迭代器 序列化

    1.双层装饰器 #!/usr/bin/env python # -*- coding: utf-8 -*- # author:zml LOGIN_INFO = False IS_ADMIN = Fal ...

  8. Python模块操作

    Exceptions 模块 该模块定义了以下标准异常: • Exception 是所有异常的基类. 强烈建议(但不是必须)自定义的异常异常也继承这个类. • SystemExit(Exception) ...

  9. 【转】利用Boost.Python将C++代码封装为Python模块

    用Boost.Python将C++代码封装为Python模块 一.     基础篇 借助Boost.Python库可以将C/C++代码方便.快捷地移植到python模块当中,实现对python模块的扩 ...

随机推荐

  1. 小白如何在Windows下使用Redis

    一.redis下载按装  Nuget 可以直接下载 redis 将下来的包拷贝到自已需要的目录如我放到桌面文件夹“近期需要\Redis应用\redis-64.3.0.503” 操作 cmd进入命令操作 ...

  2. 通过反射来创建对象?getConstructor()和getDeclaredConstructor()区别?

    1. 通过类对象调用newInstance()方法,适用于无参构造方法: 例如:String.class.newInstance() public class Solution { public st ...

  3. vue之axios的使用

    一.环境安装 1.axios的安装 进入到对应工程目录执行: npm install axios 2.启动测试数据的API 测试项目地址:https://github.com/ShenJianPing ...

  4. linux秘钥登录

    秘钥登录首先要了解四个文件: 公钥文件,私钥文件, authorized_keys, 还有/etc/ssh/sshd_config配置文件. 公钥文件存放在被登陆的机器上, 要将公钥添加进author ...

  5. nodejs的npm修改源

    在国内用npm install时,速度总是不尽如人意,解决办法是修改npm的数据源 npm config set registry https://registry.npm.taobao.org 修改 ...

  6. Winform 奇怪的 英文字体错乱显示问题

    效果如图: 字体是Calibri 后来看了一下,我在vs设计器中为了预览效果定义了这些中文,然后在构造函数中将其改成英文,可能是已经为中文渲染出了位置?在改变就会冲突? 我的设计器 如何修改: 将vs ...

  7. Batch - FOR /F Delims 和 Tokens 用法

    原文地址: for /f命令之—Delims和Tokens用法&总结 作者:别逗了好么 在For命令语踞饽参数F中,最难理解的就是Delims和Tokens两个选项,本文简单的做一个比较和总拮 ...

  8. cucumber:extentreports集成报告

    extentreports 测试报告 只支持java..Net 先在pom.xml文件中加入包引用 <!-- report--> <dependency> <groupI ...

  9. NX二次开发-UFUN适应窗口UF_VIEW_fit_view

    NX9+VS2012 #include <uf.h> #include <uf_view.h> #include <uf_modl.h> UF_initialize ...

  10. NX二次开发-NXString转换为char*方法

    NX9+VS2012 #include <uf.h> #include <uf_drf.h> #include <NXOpen/Annotations_Note.hxx& ...