python operator.itemgetter

operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些索引或键值。

用法示例:

from operator import itemgetter

ll = [1, 2, 3]
dd = {'name': 'mxt', 'age': 18, 'gender': 'female'}

func1 = itemgetter(1)  # 定义函数,获取对象第1个域的值
res1 = func1(ll)  # 2 <class 'int'>

func2 = itemgetter(0, 2)  # 定义函数,获取对象第0个域和第2个的值
res2 = func2(ll)  # (1, 3) <class 'tuple'>

func3 = itemgetter('name')
res3 = func3(dd)  # mxt <class 'str'>

func4 = itemgetter('name', 'gender')
res4 = func4(dd)  # ('mxt', 'female') <class 'tuple'>

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

应用举例:根据第1个域和第2个域进行排序

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

data1 = sorted(data, key=lambda x: (x[1], x[2]))  
# [('john', 'A', 15), ('dave', 'B', 10), ('jane', 'B', 12)]

data2 = sorted(data, key=itemgetter(1, 2))  
# [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,179评论 0 38
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,309评论 19 139
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,530评论 1 32
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,394评论 0 13
  • 事务概念 1.什么是事务 事务是对数据库操作中最基本的单元,对数据库操作一组数据时,要么都成功,有一个失败,都失败...
    维乾阅读 211评论 0 0

友情链接更多精彩内容