operator.itermgetter() (Python)

来源:互联网 发布:iphone手机壳品牌知乎 编辑:程序博客网 时间:2024/06/05 06:47

从这个名字就可以看出,这个函数在 operator 库中
同时,这是个”项拿到器”(我个人认为这个翻译做到了 信emmmm(别讲什么信达雅了emmm))
就是这个东西是一个项的生成器(准确说是个函数)。
可以通过这个东西,自定一个从一堆东西中找到对应项的那个函数

看完例子就很清楚了

import operatorb = operator.itemgetter(2)a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]print(b(a))

输出结果是:
3
//=========
在上面 b 是一个函数实体。
然后a是一个列表。
返回值就是第二项(从0 开始计数)
//=========
说明原函数(b)得到的函数实体就是一个返回第2个元素的函数实体

同样的例子还有,可以结合起来理解

import operatorb = operator.itemgetter(1, 2)a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]print(b(a))

输出结果是:
(2, 3)

import operatorb = operator.itemgetter(2, 1)a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]print(b(a))

输出的结果是
(3, 2)

import operatorb = operator.itemgetter(1, 2, 3)a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]print(b(a))

输出结果是:
(2, 3, 4)

等等…..
相信看完上面的例子之后,很快就能理解这个东西的意思了
在本质上,这个东西跟一个隐函数实体很像(虽然功能上侧重点不一样)

import operatorb = operator.itemgetter(1)a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]print(b(a))c = lambda x: x[1]print(c(a))

这个代码输出的结果是
2
2
看到这,是不是就理解的差不多了?(如果不是,就再看一遍emmm)

如果觉得这个对你有用,就点个赞支持下吧!–Sean