from:Python中的sorted函数以及operator.itemgetter函数

operator.itemgetter函数

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

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

>>> 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/。

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

  1. python中itemgetter函数_Python中的sorted函数以及operator.itemgetter函数

    operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号),下面看例子. a = [1,2,3] >>> b=op ...

  2. python itemgetter函数用法_Python中的sorted函数以及operator.itemgetter函数

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

  3. python itemgetter函数_[问题解决] sorted函数以及operator.itemgetter函数

    在KNN算法中有对距离进行排序,这里用到 sortedClassCount = sorted(classCount.iteritems(), key=operator.itemgetter(1), r ...

  4. python中argsort,sort 和 sorted,operator.itemgetter函数

    下面对argsort,sort 和 sorted这几个排序函数做一个简单的介绍 argsort() 一维数组 argsort()函数,是numpy库中的函数 argsort()函数是将数组中的元素从小 ...

  5. python中operator.itemgetter函数

    operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号),下面看例子. k = [3,6,8]b = operator.itemg ...

  6. Python中的operator.itemgetter函数

    Python中的operator模块中的itemgetter函数的作用是获取对象哪些维的数据,参数是表示维的序号. operator.itemgetter函数定义的是一个函数,通过该函数作用到对象上才 ...

  7. python中的sorted、iteritems和operator.itemgetter

    最近在看<机器学习实战>,在学到第三章递归构建决策树时看到以下代码: def majorityCnt(classList):classCount = {}for vote in class ...

  8. python set 排序_python set 排序_如何在Python中使用sorted()和sort()

    点击"蓝字"关注我们 ?"Python基础知识" 大卫·丰达科夫斯基  著 18财税3班 李潇潇    译 日期:2019年5月6日 一. 使用sorted() ...

  9. python变量必须以字母和下划线_【转载】关于python中带下划线的变量和函数的意义...

    Python 的代码风格由 PEP 8 描述.这个文档描述了 Python 编程风格的方方面面.在遵守这个文档的条件下,不同程序员编写的 Python 代码可以保持最大程度的相似风格.这样就易于阅读, ...

最新文章

  1. java数独中数独空格初始化,java高手近解决数独问题,看你是不是高手!
  2. 一些mysql innodb的建议
  3. td里面字体大小怎么改_王者荣耀战区怎么改到其他地方 2020荣耀战区修改方法...
  4. 代码生成工具之Winform查询列表界面生成
  5. MongoDB学习笔记(一)--基础
  6. ddd 企业应用架构模式_灵魂拷问:用了DDD分包就是落地了领域驱动设计吗?谈谈DDD本质...
  7. 一文了解Redis持久化
  8. GestureDetector类及其用法
  9. 英伟达显卡不同架构_英伟达GeForce RTX 3070 Ti与RTX 3070显卡规格曝光
  10. Git:常用的命令(不断迭代完善)
  11. Python 奇葩语法
  12. oracle执行runstats,Oracle编程艺术--配置环境:runstats脚本
  13. nginx rwrite及增加不记录特定状态日志nginx模块
  14. php 多个files 数量,php – 具有多个字段时$_FILES数组的奇怪格式
  15. oracle vm virtualbox 卸载
  16. 系统分析与设计小组项目总结报告
  17. Twincat3报错AdsWarning: 4115 (0x1013, RTIME: system clock setup fails
  18. oracle update exsits,Oracle 11g 递归+ exists执行计划的改变
  19. python蒙特卡洛算法模拟赌博模型
  20. vr多人_如何构建多人VR网络应用

热门文章

  1. NET MVC3 中的枚举多语言实现,DescriptionPairAttribute
  2. 未来趋势分析:Linux有可能成为java OS
  3. Python中文件路径如果需要回退到上一级怎么办?
  4. 【积累】C/C++中明明该用函数实现的功能,为啥非要自己写代码
  5. s7-200与计算机modbus通讯案例,【案例】S7-200SMART MODBUS通信介绍与实例编程
  6. leetcode算法题--链表组件
  7. python 获取方法名_python 动态获取当前运行的类名和函数名的方法
  8. python字符串操作_浅谈Python 字符串特有的操作方法
  9. 2018阿里云云数据库RDS核心能力演进
  10. ant design pro(一)安装、目录结构、项目加载启动【原始、以及idea开发】