Как извлечь из списка объектов список определенного атрибута? - PullRequest
27 голосов
/ 24 марта 2009

У меня есть список объектов. Объект имеет 3 строковых атрибута. Я хочу сделать список, содержащий только определенный атрибут из класса.

Есть ли встроенные функции для этого?

Ответы [ 4 ]

45 голосов
/ 24 марта 2009

Понимание списка будет работать просто отлично:

[o.my_attr for o in my_list]

Но есть комбинация встроенных функций, так как вы спрашиваете: -)

from operator import attrgetter
map(attrgetter('my_attr'), my_list)
7 голосов
/ 24 марта 2009

вы ищете что-то подобное?

[o.specific_attr for o in objects]
5 голосов
/ 24 марта 2009

Первое, что пришло мне в голову:

attrList = map(lambda x: x.attr, objectList)
0 голосов
/ 24 марта 2009

Предполагая, что вы хотите поле b для объектов в списке с именем objects, сделайте следующее:

[o.b for o in objects]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...