operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号),下面看例子。

a = [1,2,3]

>>> b=operator.itemgetter(1)      //定义函数b,获取对象的第1个域的值

>>> b(a)

2

>>> b=operator.itemgetter(1,0)  //定义函数b,获取对象的第1个域和第0个的值

>>> b(a)

(2, 1)

要注意,operator.itemgetter函数获取的不是值,而是定义了一个函数,通过该函数作用到对象上才能获取值。

sorted函数

Python内置的排序函数sorted可以对list或者iterator进行排序,官网文档见:http://docs.python.org/2/library/functions.html?highlight=sorted#sorted,该函数原型为:

sorted(iterable[, cmp[, key[, reverse]]])

参数解释:

(1)iterable指定要排序的list或者iterable,不用多说;

(2)cmp为函数,指定排序时进行比较的函数,可以指定一个函数或者lambda函数,如:

students为类对象的list,没个成员有三个域,用sorted进行比较时可以自己定cmp函数,例如这里要通过比较第三个数据成员来排序,代码可以这样写:

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

sorted(students, key=lambda student : student[2])

(3)key为函数,指定取待排序元素的哪一项进行排序,函数用上面的例子来说明,代码如下:

sorted(students, key=lambda student : student[2])

key指定的lambda函数功能是去元素student的第三个域(即:student[2]),因此sorted排序时,会以students所有元素的第三个域来进行排序。

有了上面的operator.itemgetter函数,也可以用该函数来实现,例如要通过student的第三个域排序,可以这么写:

sorted(students, key=operator.itemgetter(2))

sorted函数也可以进行多级排序,例如要根据第二个域和第三个域进行排序,可以这么写:

sorted(students, key=operator.itemgetter(1,2))

即先跟句第二个域排序,再根据第三个域排序。

(4)reverse参数就不用多说了,是一个bool变量,表示升序还是降序排列,默认为false(升序排列),定义为True时将按降序排列。

sorted函数更多的例子可以参考官网文档:https://wiki.python.org/moin/HowTo/Sorting/。

排序:

字典items()方法和iteritems()方法,是python字典的内建函数,分别会返回Python列表和迭代器

字典items()操作方法:

>>> x = {'title':'python web site','url':'www.iplaypy.com'}

>>> x.items()

[('url', 'www.iplaypy.com'), ('title', 'python web site')]

dict iteritems()操作方法:

>>> f = x.iteritems()

>>> f

>>> type(f)

#字典项的迭代器

>>> list(f)

[('url', 'www.iplaypy.com'), ('title', 'python web site')]

字典.iteritems()方法在需要迭代结果的时候使用最适合,而且它的工作效率非常的高。

python中itemgetter函数_Python中的sorted函数以及operator.itemgetter函数相关推荐

  1. python中定义数据结构_Python中的数据结构—简介

    python中定义数据结构 You have multiples algorithms, the steps of which require fetching the smallest value ...

  2. python列表中字典排序_python中字典排序,列表中的字典排序

    python中字典排序,列表中的字典排序 一.使用python模块:operator import operator #首先要导入模块operator x = {1:2, 3:4, 4:3, 2:1, ...

  3. python算法和数据结构_Python中的数据结构和算法

    python算法和数据结构 To 至 Leonardo da Vinci 达芬奇(Leonardo da Vinci) 介绍 (Introduction) The purpose of this ar ...

  4. python中execute函数_Python中的函数定义与参数使用

    本节知识点:(1)函数定义格式:(2)五种参数使用 函数定义 基本语法格式 def function_name( parameter_list ): return values 函数通常为小写英语单词 ...

  5. python中的json函数_python中装饰器、内置函数、json的详解

    装饰器 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象. 先看简单例子: def run(): time.sleep(1 ...

  6. python nums函数_Python中的内置函数

    Python中有很多内置函数,不需要我们调用模块可以直接使用,而且都是常用函数的封装,下面我们来看看Python中的内置函数都有那些. 1.abs() abs()是绝对值函数,把一个负数转化为正数,数 ...

  7. python函数中的变量_Python中的函数与变量

    本节内容 函数的定义方法 函数功能 函数的返回值 函数的形参与实参 全局变量与局部变量 递归 函数的作用域 匿名函数lambda 函数式编程 常用内置函数 其他内置函数 函数 函数的定义方法 函数就相 ...

  8. python local函数_python中的函数

    函数 一.函数的定义 def是可执行的代码.def创建了一个对象并将其赋值给某一变量名.def语句是实时执行的,即:def在运行时才进行评估,而在def之中的代码在函数调用后才会评估.函数本身就是一个 ...

  9. python 高级使用实例_Python中的高级函数map/reduce使用实例

    怎么用Python写mapreduce,请举例说明,初学者,请1.lambda # 匿名函数# 基本用法 lambda x: x**2 # 第一个参数,然后是表达式# 也可以使用如下(lambda x ...

最新文章

  1. 2022-2028年中国场景金融行业深度调研及投资前景预测报告
  2. 机器学习、数据挖掘及其他
  3. jquery 毫秒转换成日期_jQuery Datepicker – 如何将日期格式化为纪元时间戳(以秒为单位,而不是毫秒)...
  4. c语言预处理指令之 ##
  5. python 战舰_简单Python战舰
  6. 开发指南专题十四:JEECG微云快速开发平台MiniDao 介绍
  7. python可打印字符_测试一个python字符串是否可打印
  8. 村上隆首场中国直播,火山同传打造“影院级字幕”
  9. c语言用三目运算符从小到大排列,错题集
  10. 镜像miracast投屏软件_miracast投屏软件下载
  11. java文件对比工具
  12. 蚁群算法原理及Matlab实现
  13. 利用 DIAMOND、MCScanX、TBtools 分析物种基因组间的共线性区段与基因复制事件
  14. 1521 一维战舰 水题
  15. C#设置点击打开外部exe程序,并判断是否程序已开启,未开启的话打开,已经在运行了就前置
  16. 送戒指创意 让婚礼不再单调
  17. 旋转方阵So easy
  18. Hbase启动失败,查询日志后报错信息是master.HMasterCommandLine Master exiting
  19. UTC时间、GMT时间、CST时间(北京时间)、时间戳
  20. TopCoder入门教程(转载)

热门文章

  1. slicer安装_3D Slicer教程【软件安装及设置】
  2. 13-Qt6 QMap
  3. oracle 用户创建角色,oracle普通用户创建和加权限
  4. gunicorn多进程不死_WEB,gunicorn - 无论是多进程、多线程、协程模式,同一个浏览器窗口多个标签页访问同一个url,看上去不会并发的问题...
  5. one-hot与哑变量(dummy variable)的区别
  6. java 登录下线_java web中Listener的实现(实现用户在线统计数量和强制用户下线)...
  7. c primer plus第六版电子版_【财经】京东超市PLUS有机联盟:有机品牌提升一站式营销解决方案...
  8. Http协议简单介绍
  9. 笔记-项目管理ITTO-高项/PMP第五版-全
  10. Mac下使用docker下载nginx并挂载文件