import time, operator try: xrange except NameError: xrange= range class A(object): def __init__(self): self.id= id(self) def main(): alist= [A() for _ in xrange(1000000)] t0= time.clock() data= [obj.id for obj in alist] t= time.clock() - t0 print("list comp", t, len(data)) t0= time.clock() data= list(map(operator.attrgetter('id'), alist)) t= time.clock() - t0 print("map attrgetter", t, len(data)) t0= time.clock() data= list(map(lambda x: x.id, alist)) t= time.clock() - t0 print("map lambda", t, len(data)) main()