import operator

1. operator.itemgetter

operator.itemgetter(1)

等价于

lambda x: x[1]

2. 实现多级排序

>>> students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10),]  

使用 itemgetter() 可指定多个排序规则,比如本例的 sort by grade then by age:

>>> sorted(students, key=operator.itemgetter(1, 2))
[('john', 'A', 15), ('dave', 'B', 10), ('jane', 'B', 12)]

3. 与 functools 模块的搭配

http://www.wklken.me/posts/2013/08/18/python-extra-functools.html

  • functools.partial:分批传参数进来

    其实现见下:

    
    #args/keywords 调用partial时参数def partial(func, *args, **keywords):def newfunc(*fargs, **fkeywords):newkeywords = keywords.copy()newkeywords.update(fkeywords)return func(*(args + fargs), **newkeywords) # list + list,[1, 2] + [3, 4] ⇒ [1, 2, 3, 4]#合并,调用原始函数,此时用了partial的参数newfunc.func = funcnewfunc.args = argsnewfunc.keywords = keywordsreturn newfunc

    urlunquote_fixed_encode = functools.partial(urlunquote, encoding='latin1'),当调用 urlunquote_fixed_encode(args, *kargs)时,相当于调用urlunquote(args, *kargs, encoding='latin1')

    partial(func, *args, **keywords) ⇒ 虽然返回的是 newfunc,仅仅是一个函数对象,但其更是一个闭包,保留着调用 partial 时传递进来的参数(位置型参数以及关键字参数),但调用 newfunc时,会进一步传递新的参数进来;

Python 基础—— operator 模块、functools相关推荐

  1. python基础——使用模块

    python基础--使用模块 Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用. 我们以内建的sys模块为例,编写一个hello的模块: #!/usr/bin/env ...

  2. python基础之模块之os模块

    python基础之模块之os模块 os模块 os模块的作用: os,语义为操作系统,所以肯定就是操作系统相关的功能了,可以处理文件和目录这些我们日常手动需要做的操作,就比如说:显示当前目录下所有文件/ ...

  3. 用于生成随机数的python标准库模块是_详解Python基础random模块随机数的生成

    详解Python基础random模块随机数的生成 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  详解Python基础random模块随机数的生成.txt ] ( ...

  4. python random库生成伯努利随机数的方法_详解Python基础random模块随机数的生成

    随机数参与的应用场景大家一定不会陌生,比如密码加盐时会在原密码上关联一串随机数,蒙特卡洛算法会通过随机数采样等等.Python内置的random模块提供了生成随机数的方法,使用这些方法时需要导入ran ...

  5. Python基础之模块和包

    Python基础之模块和包 本节将介绍Python中的模块和包的概念及基本用法. 模块 简单来说模块就是一个python文件,我们可以将一些常量.函数.类等封装到一个模块中,然后在程序中使用该模块.模 ...

  6. 刻意练习:Python基础 -- Task12. 模块

    背景 我们准备利用17天时间,将 "Python基础的刻意练习" 分为如下任务: Task01:变量.运算符与数据类型(1day) Task02:条件与循环(1day) Task0 ...

  7. 带你学python基础:模块和包

    一.什么是模块 在我们平时的开发过程中,或多或少会用到 Python 的一些内置的功能,或者说,还会用到一些第三方的库,我们用到的这些 Python 的内置的功能,和一些第三方的库,就可以说是一些模块 ...

  8. Python中operator模块的操作

    Operator模块提供了一系列与Python自带操作一样有效的函数.例如:operator.add(x, y)和表达式x+y是等效的.那些特殊类的方法都有自己的函数名:为了方便起见,一些函数名是没有 ...

  9. python基础包的functools的reduce方法-亢保星

    #!/usr/bin/env python #-- coding:utf-8 -- """ 一 functools介绍 1.functools 模块可以说主要是为 函数式 ...

最新文章

  1. 利用BP神经网络教计算机识别语音特征信号(代码部分SLR)
  2. 1475 m进制转十进制
  3. mysql备份一个表到ftp_备份部分mysql表并上传至指定ftp服务器目录中
  4. pdo mysql 存储过程 out_PHP_PDO 调用mysql 带返回参数的存储过程
  5. SpringBoot集成多数据源
  6. 字符识别(模板匹配BP神经网络训练)
  7. 服务器消息不是按顺序来的,消息队列之 RocketMQ(示例代码)
  8. SAP License:老板都不懂ERP,怎么会用得好ERP呢?
  9. docker-compose 学习:通过 Dockerfile 和 build 指令搭建 LNMP
  10. HTTPS性能优化实践
  11. Java学习网站推荐
  12. 扫雷win10_厉害了,一个自动扫雷游戏项目!
  13. js获取当前农历时间
  14. 阿里巴巴sentinel限流
  15. 2022年最新广东交安安全员考试题库及答案
  16. 书舟计划丨国鸿公益amp;MINI书箱漂流乡村公益行 为爱启程
  17. Xposed插件Android.EagleEye
  18. 跳马周游c++_C++——跳马问题(广搜)
  19. 如何在Word中重置用户选项和注册表设置
  20. nginx如何解析html响应,在nginx中,如何返回http 500返回码并包含响应客户端的响应体...

热门文章

  1. c++函数不允许递归_递归优化的这三种方式你知道吗?
  2. MySQL 之 四种隔离级别
  3. Blog运用感想 (ZT)
  4. Tableau可视化学习笔记:day09-10
  5. 小组互评Alpha版本
  6. CentOS 6 上安装 pip、setuptools
  7. React Native开发之IDE(Atom+Nuclide)安装,运行,调试
  8. oc UIAlertController封装
  9. 关于本学期西南交通大学ACM-ICPC校集训队 训练计划(Beta 1.0)
  10. MVC3 Razor 语法检查 -(转)