On Thu, Aug 3, 2017 at 3:21 AM, Ian Pilcher <arequip...@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 -- https://mail.python.org/mailman/listinfo/python-list