返回

operattor - attrgetter and methodcaller 使用

发布时间:2022-12-21 21:13:52 210
# python

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的感觉,但是却有点不一样

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
operator itemgetter 使用 2022-12-21 20:47:54