2009-03-24 5 views

Répondre

36

Une compréhension de la liste fonctionnerait très bien:

[o.my_attr for o in my_list] 

Mais il y a une combinaison de fonctions intégrées, puisque vous me demandez :-)

from operator import attrgetter 
map(attrgetter('my_attr'), my_list) 
+0

Excellent. Je vous remercie! –

+0

ce n'est pas un intégré si vous avez besoin d'importer. ;) http://docs.python.org/library/functions.html – SilentGhost

+3

Je plaide la nuance: "built-in"! = "__builtins__" Eh bien, c'est mon histoire et je m'en tiens à ça, officier.) –

0

En supposant que vous voulez champ b pour les objets dans une liste nommée objects faire:

[o.b for o in objects] 
+0

Je suppose que vous vouliez dire [ ob for o dans les objets]. –

3

La première chose qui me vint à l'esprit:

attrList = map(lambda x: x.attr, objectList) 
+0

Qu'est-ce qui ne va pas avec lambda? –

7

recherchez-vous quelque chose comme ça ?

[o.specific_attr for o in objects] 
Questions connexes