operator.itemgetter函數
operator模塊提供的itemgetter函數用於獲取對象的哪些維的數據,參數為一些序號。看下面的例子
a = [1,2,3]
>>> b=operator.itemgetter(1) //定義函數b,獲取對象的第1個域的值
>>> b(a)
2
>>> b=operator.itemgetter(1,0) //定義函數b,獲取對象的第1個域和第0個的值
>>> 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=operator.itemgetter(1,2))