当前位置 : 主页 > 编程语言 > python >

operattor - attrgetter and methodcaller 使用

来源:互联网 收集:自由互联 发布时间:2022-12-20
attrgetter attrgetter 与 itemgetter 作用类似, 它创建的函数根据名称提取对象的属性。 如果把多个属性名传给 attrgetter, 它也会返回提取的值构成的元组。 此外, 如果参数名中包含 .(点号

attrgetter

attrgetter 与 itemgetter 作用类似, 它创建的函数根据名称提取对象的属性。 如果把多个属性名传给 attrgetter, 它也会返回提取的值构成的元组。 此外, 如果参数名中包含 .(点号) , attrgetter 会深入嵌套对象, 获取指定的属性。

from collections import nametuple # 命名元组 LatLong = namedtuple('LatLong', 'lat long') Metropolis = namedtuple('Metropolis', 'name cc pop coord') metro_areas = [Metropolis(name, cc, pop, LatLong(lat, long)) for name, cc, pop, (lat, long) in metro_data] from operator import attrgetter name_lat = attrgetter('name', 'coord.lat') for item in sorted(metro_areas, key=attrgetter('coord.lat')): print(name_lat(item))

可以应用到实际项目中。dict比较占用内存。nametuple是个不错的选择。搭配attrgetter有很多可能

methodcaller

它的作用与 attrgetter 和 itemgetter 类似, 它会自行创建函数

from operator import methodcaller a = 'hello world' upcase = methodcaller('upper') upcase(a)

有点类似getattr的感觉,但是却有点不一样

【文章由韩国大带宽服务器 http://www.558idc.com/lg.html处的文章,转载请说明出处】
上一篇:Python__03--二进制与字符编码
下一篇:没有了
网友评论