Operator模块中也有一类函数可以作为条件过滤。
首先介绍 itemgetter 函数。假设定义了一个 f 函数,f = itemgetter(2),那么如果调用 f(r),实际会返回 r[2]。也就是说,传入的入参 r,最终返回的只是 r 的索引值为 2 (从 1 开始计算)那一部分。
itemgetter函数应用场景:根据tuple的某个字段对tuple列表排序。例如,有一段JSON格式的城市数据,需要按缩写方式排序:
from operator import itemgetter metro_areas = [('Tokyo', 'JP', 36.933, (35.689722, 139.691667)), ('Delhi NCR', 'IN', 21.935, (28.613889, 77.208889)), ('Mexico City', 'MX', 20.142, (19.433333, -99.133333)), ('New York-Newark', 'US', 20.104, (40.808611, -74.020386)), ('Sao Paulo', 'BR', 19.649, (-23.547778, -46.635833)), ] for city in sorted(metro_areas, key=itemgetter(1)): logging.info('city -> %s', city)
从分割来看,城市数据数组中的每个元素都是元组形式。itemgetter函数提取tuple的第二个值,作为sorted函数排序的基础。
以上就是Python itemgetter函数的使用,希望能对大家有所帮助!