栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

使用in匹配数组中Python对象的属性

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用in匹配数组中Python对象的属性

问:

我不记得我是不是在做梦,但我似乎记得有一个功能可以让我这样做,

foo in iter_attr(array of python objects, attribute name)

我查看了文档,但这种事情不属于任何明显列出的标题

答:

使用列表推导会构建一个临时列表,如果搜索的序列很大,它可能会占用你所有的内存。即使序列不大,构建列表意味着在in开始搜索之前迭代整个序列

通过使用生成器表达式可以避免临时列表:

foo = 12
foo in (obj.id for obj in bar)

现在,只要obj.id == 12接近开始bar,搜索就会很快,即使bar是无限长。

正如@Matt建议的那样,hasattr如果任何一个对象bar都缺少一个id属性,那么使用它是个好主意

foo = 12
foo in (obj.id for obj in bar if hasattr(obj, 'id'))

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/804815.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号