python operator.itemgetter

operator模塊提供的itemgetter函數(shù)用于獲取對象的哪些維的數(shù)據(jù),參數(shù)為一些索引或鍵值。

用法示例:

from operator import itemgetter

ll = [1, 2, 3]
dd = {'name': 'mxt', 'age': 18, 'gender': 'female'}

func1 = itemgetter(1)  # 定義函數(shù),獲取對象第1個域的值
res1 = func1(ll)  # 2 <class 'int'>

func2 = itemgetter(0, 2)  # 定義函數(shù),獲取對象第0個域和第2個的值
res2 = func2(ll)  # (1, 3) <class 'tuple'>

func3 = itemgetter('name')
res3 = func3(dd)  # mxt <class 'str'>

func4 = itemgetter('name', 'gender')
res4 = func4(dd)  # ('mxt', 'female') <class 'tuple'>

注意:operator.itemgetter函數(shù)獲取的不是值,而是定義了一個函數(shù),通過該函數(shù)作用到對象上才能獲取值。

應用舉例:根據(jù)第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)]
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 14,246評論 0 38
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,652評論 1 32
  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,553評論 0 13
  • 事務概念 1.什么是事務 事務是對數(shù)據(jù)庫操作中最基本的單元,對數(shù)據(jù)庫操作一組數(shù)據(jù)時,要么都成功,有一個失敗,都失敗...
    維乾閱讀 222評論 0 0

友情鏈接更多精彩內(nèi)容