python中itemgetter函数_Python中的sorted函数以及operator.itemgetter函数
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函数相关推荐
- python中定义数据结构_Python中的数据结构—简介
python中定义数据结构 You have multiples algorithms, the steps of which require fetching the smallest value ...
- python列表中字典排序_python中字典排序,列表中的字典排序
python中字典排序,列表中的字典排序 一.使用python模块:operator import operator #首先要导入模块operator x = {1:2, 3:4, 4:3, 2:1, ...
- python算法和数据结构_Python中的数据结构和算法
python算法和数据结构 To 至 Leonardo da Vinci 达芬奇(Leonardo da Vinci) 介绍 (Introduction) The purpose of this ar ...
- python中execute函数_Python中的函数定义与参数使用
本节知识点:(1)函数定义格式:(2)五种参数使用 函数定义 基本语法格式 def function_name( parameter_list ): return values 函数通常为小写英语单词 ...
- python中的json函数_python中装饰器、内置函数、json的详解
装饰器 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象. 先看简单例子: def run(): time.sleep(1 ...
- python nums函数_Python中的内置函数
Python中有很多内置函数,不需要我们调用模块可以直接使用,而且都是常用函数的封装,下面我们来看看Python中的内置函数都有那些. 1.abs() abs()是绝对值函数,把一个负数转化为正数,数 ...
- python函数中的变量_Python中的函数与变量
本节内容 函数的定义方法 函数功能 函数的返回值 函数的形参与实参 全局变量与局部变量 递归 函数的作用域 匿名函数lambda 函数式编程 常用内置函数 其他内置函数 函数 函数的定义方法 函数就相 ...
- python local函数_python中的函数
函数 一.函数的定义 def是可执行的代码.def创建了一个对象并将其赋值给某一变量名.def语句是实时执行的,即:def在运行时才进行评估,而在def之中的代码在函数调用后才会评估.函数本身就是一个 ...
- python 高级使用实例_Python中的高级函数map/reduce使用实例
怎么用Python写mapreduce,请举例说明,初学者,请1.lambda # 匿名函数# 基本用法 lambda x: x**2 # 第一个参数,然后是表达式# 也可以使用如下(lambda x ...
最新文章
- 2022-2028年中国场景金融行业深度调研及投资前景预测报告
- 机器学习、数据挖掘及其他
- jquery 毫秒转换成日期_jQuery Datepicker – 如何将日期格式化为纪元时间戳(以秒为单位,而不是毫秒)...
- c语言预处理指令之 ##
- python 战舰_简单Python战舰
- 开发指南专题十四:JEECG微云快速开发平台MiniDao 介绍
- python可打印字符_测试一个python字符串是否可打印
- 村上隆首场中国直播,火山同传打造“影院级字幕”
- c语言用三目运算符从小到大排列,错题集
- 镜像miracast投屏软件_miracast投屏软件下载
- java文件对比工具
- 蚁群算法原理及Matlab实现
- 利用 DIAMOND、MCScanX、TBtools 分析物种基因组间的共线性区段与基因复制事件
- 1521 一维战舰 水题
- C#设置点击打开外部exe程序,并判断是否程序已开启,未开启的话打开,已经在运行了就前置
- 送戒指创意 让婚礼不再单调
- 旋转方阵So easy
- Hbase启动失败,查询日志后报错信息是master.HMasterCommandLine Master exiting
- UTC时间、GMT时间、CST时间(北京时间)、时间戳
- TopCoder入门教程(转载)
热门文章
- slicer安装_3D Slicer教程【软件安装及设置】
- 13-Qt6 QMap
- oracle 用户创建角色,oracle普通用户创建和加权限
- gunicorn多进程不死_WEB,gunicorn - 无论是多进程、多线程、协程模式,同一个浏览器窗口多个标签页访问同一个url,看上去不会并发的问题...
- one-hot与哑变量(dummy variable)的区别
- java 登录下线_java web中Listener的实现(实现用户在线统计数量和强制用户下线)...
- c primer plus第六版电子版_【财经】京东超市PLUS有机联盟:有机品牌提升一站式营销解决方案...
- Http协议简单介绍
- 笔记-项目管理ITTO-高项/PMP第五版-全
- Mac下使用docker下载nginx并挂载文件