Get list of attributes from list of objects?
Chris Angelico
rosuav at gmail.com
Wed Aug 2 13:49:59 EDT 2017
On Thu, Aug 3, 2017 at 3:21 AM, Ian Pilcher <arequipeno at gmail.com> wrote:
> Given a list of objects that all have a particular attribute, is there
> a simple way to get a list of those attributes?
>
> In other words:
>
> class Foo(object):
> def __init__(self, name):
> self.name = name
>
> foolist = [ Foo('a'), Foo('b'), Foo('c') ]
>
> namelist = []
> for foo in foolist:
> namelist.append(foo.name)
>
> Is there a way to avoid the for loop and create 'namelist' with a single
> expression?
You can't eliminate the loop, but you can compact it into a single
logical operation:
namelist = [foo.name for foo in foolist]
That's a "list comprehension", and is an elegant way to process a list
in various ways.
ChrisA
More information about the Python-list
mailing list