python operator的itemgetter函数

本文深入解析了itemgetter函数的功能和用法,展示了如何利用该函数从列表和元组中高效地提取特定元素,特别是在排序和数据处理场景中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先看下help帮助信息,

class itemgetter(__builtin__.object)
 |  itemgetter(item, ...) --> itemgetter object
 |  
 |  Return a callable object that fetches the given item(s) from its operand.
 |  After f = itemgetter(2), the call f(r) returns r[2].
 |  After g = itemgetter(2, 5, 3), the call g(r) returns (r[2], r[5], r[3])

由此我们知道以下两点:

1、itemgetter函数用于返回操作对象的某个元素,具体取决于用户给的参数,对应到矩阵上,那就是返回某一维的元素

2、itemgetter函数并不是直接获取操作对象的值,而是定义了一个函数,通过该函数才能获取操作对象的值

看例子,

>>> a=[1,2,3]
>>> b(a)
2
>>> a=[1,2,3]
>>> b=operator.itemgetter(1)
>>> b(a)
2
>>> c=operator.itemgetter(1,2)
>>> c(a)
(2, 3)
>>> 

再看矩阵上,

>>> a=array([[1,2,3],[4,5,6],[7,8,9]])
>>> a
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
>>> b=operator.itemgetter(1)
>>> c=operator.itemgetter(1,2)
>>> b(a)
array([4, 5, 6])
>>> c(a)
(array([4, 5, 6]), array([7, 8, 9]))
>>> 

不过大多数时候该函数用于获取多元组某个域的值,作为排序关键字,

>>> a=('Kobe', 24)
>>> b=operator.itemgetter(0)
>>> c=operator.itemgetter(1)
>>> b(a)
'Kobe'
>>> c(a)
24
>>> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值