Operator模块中也有一种可以作为条件过滤的函数。
首先介绍 itemgetter 函数。假设定义了一个。 f 函数,f = itemgetter(2)如果调用,那么如果调用, f(r),实际会返回 r[2]。也就是说,传入的入参 r,最后回来的只是 r 的索引值为 2 (从 1 开始计算)那部分。
itemgetter函数应用场景:根据tuple的某个字段对tuple列表进行排序。例如,JSON格式的城市数据需要按缩写排序:
fromoperatorimportitemgetter metro_areas=[('Tokyo','JP',36.933,(35.68972,139.69167);DelhiNCR','IN',21.935,(28.61389,77.20889), ('MexicoCity','MX',(19.4333333,-99.133333) ('NewYork-Newark','US',20.104,(40.808611,-74.020386)), ('SaoPaulo','BR',19.649(-23.54778-46.635833) ] forcityinsorted(metro_areas,key=itemgetter(1)): logging.info('city->%s',city)
从分割的角度来看,城市数据数组中的每个元素都是元组形式。itemgeter函数提取tuple的第二个值作为sorted函数排序的基础。
以上就是Python 使用itemgeter函数,希望对大家有所帮助!