个人猜测,可能也没有经过大量资料查询整理

itemgetter函数在Python3.0版本中可能语法不一样

之前有博客中使用itemgetter函数时,要加上前缀operator

但是在3.0版本中可以直接使用itemgetter

a = [1,2,3] 
b=itemgetter(1)      //定义函数b,获取对象的第1个域的值
print(b(a))

得到2

b=itemgetter(1,0)  //定义函数b,获取对象的第1个域和第0个的值

print(b(a) )

得到(2, 1)

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

sorted函数用来排序,sorted(iterable[, cmp[, key[, reverse]]])

其中key的参数为一个函数或者lambda函数。所以itemgetter可以用来当key的参数

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

根据第二个域和第三个域进行排序

sorted(students, key=itemgetter(1,2))