Python operator.itemgetter函数理解
2018-01-10 08:25
441 查看
Python operator.itemgetter函数
使用方法from operator import itemgetter 或 import operator (调用时需要用itemgetter.operator)
作用:itemgetter 用于获取对象的哪些位置的数据,参数即为代表位置的序号值,
注:这里其他参考资料上’位置’描述的词语是’维度’,我和其他人想法不同,不能称之为维度,准确的描述,应该是位置,因为我发现,itemgetter返回的只是下表,并且只将处理对象看做一维的,详细可以看后面例子的描述
注意:itemgetter 获取的不是值,而是定义了一个函数,通过该函数作用到目标对象上,取出目标对象对应维度的值
例如:
a = [1,2,3]
b = [[1,2,3],[4,5,6],[7,8,9]]
注: Python列表、元祖、字典等对象的下标均是从0开始的
这里描述一下我理解的维度,即从线性代数的角度看:
这里,列表a我们可以看做一维数据,上面3个点:a[0] = 1, a[1] = 2, a[2] = 3
列表b则是2维数据,上面是9个点:b[0,0] = 1, b[0,1] = 2, b[0,2] = 3, b[1,0] = 4, …, b[2,2] = 9
理解了上面的描述,就可以更好的理解itemgetter的处理结果了
我们定义取出对象位置1上的数据:
get_1 = itemgetter(1) get_1(a) >>> 2 get_1(b) >>> [4,5,6]
类似:取出对象1,2位置上的数据,并且调整一下顺序:
get_21 = itemgetter(2,1) get_21(a) >>> [3,2] get_21(b) >>> [[7,8,9],[4,5,6]]
如果要取出b中第2维度上相应位置上的数据,则需要对其中各个子列表进行取数,因为itemgetter的对象是1维对象:
b_21 = [] for temp in b: tep = get_21(temp) b_21.append(tep) 也可以直接:b_21 = [get_21(temp) for temp in b] >>> b_21 = [[3,2],[6,5],[9,8]]
相关文章推荐
- python学习 -- operator.itemgetter(), list.sort/sorted 以及lambda函数
- Python中的sorted()函数以及operator.itemgetter()函数
- python的operator.itemgetter('click')用于定义获取'click'项的函数
- python的operator.itemgetter('click')用于定义获取'click'项的函数
- Python3:operator模块中的itemgetter()函数
- python排序sorted()与operator.itemgetter()函数
- python中的sorted、iteritems和operator.itemgetter
- Python中Numpy的tile函数用法以及operator.itemgetter函数和sorted函数
- python 字典列表排序operator.itemgetter()
- python sorted函数(结合使用lambda和operator.itemgetter()来对字典进行排序)
- operator.itemgetter(*items) @ python
- python中operator.itemgetter
- python3使用operator.itemgetter对字典进行排序
- Python中的sorted以及operator.itemgetter的用法
- 【Python】iteritems()与itemgetter()函数作用
- python——sorted函数、sort函数以及operator.itemgetter的使用
- Python学习3-Panel,DataFrame, operator.itemgetter,sorted()
- Python: 字典列表: itemgetter 函数: 根据某个或某几个字典字段来排序列表
- python operator.itemgetter
- python sorted operator.itemgetter