如何从对象列表中提取特定属性列表?

Jan*_*rgs 31 python

我有一个对象列表.对象有3个字符串属性.我想创建一个仅包含类中特定属性的列表.

有没有内置函数可以做到这一点?

Jar*_*die 50

列表理解可以正常工作:

[o.my_attr for o in my_list]
Run Code Online (Sandbox Code Playgroud)

但是有一个内置函数的组合,因为你问:-)

from operator import attrgetter
map(attrgetter('my_attr'), my_list)
Run Code Online (Sandbox Code Playgroud)

  • 我恳求细微差别:"内置"!="__ builtin__".嗯,那是我的故事,我坚持下去,军官.:-) (6认同)

Sil*_*ost 7

你在找这样的东西吗?

[o.specific_attr for o in objects]
Run Code Online (Sandbox Code Playgroud)


Ros*_*ant 5

假设您想要b名为列表中的对象的字段objects,请执行以下操作:

[o.b for o in objects]
Run Code Online (Sandbox Code Playgroud)


Cof*_*ars 5

我想到的第一件事是:

attrList = map(lambda x: x.attr, objectList)
Run Code Online (Sandbox Code Playgroud)