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 

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

func3 = itemgetter('name')
res3 = func3(dd)  # mxt 

func4 = itemgetter('name', 'gender')
res4 = func4(dd)  # ('mxt', 'female') 

注意: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)]

你可能感兴趣的:(python operator.itemgetter)