1

I have a list of objects:obj_list like below:

obj_1 = SomeObj()
obj_2 = SomeObj()
obj_1.items = [obj10, obj11, obj12]
obj_2.items = [obj20, obj21, obj22]
obj_list = [obj_1, obj_2]

Now I want a list containing all the items like below using comprehension:

[obj10, obj11, obj12, obj20, obj21, obj22]

I have tried as follows:

[item for item in obj.items for obj in obj_list]
Kawsar Ahmed
  • 433
  • 2
  • 12

1 Answers1

0
>>> class SomeObj:
...     pass
... 
>>> obj1=SomeObj()
>>> obj1.items=[1, 2, 3]
>>> obj2=SomeObj()
>>> obj2.items=[4, 5, 6]
>>> obj_list=[obj1, obj2]
>>> [obj.items for obj in obj_list]
[[1, 2, 3], [4, 5, 6]]
>>> [item for obj in obj_list for item in obj.items]
[1, 2, 3, 4, 5, 6]
>>> import itertools
>>> list(itertools.chain(*[obj.items for obj in obj_list]))
[1, 2, 3, 4, 5, 6]
riteshtch
  • 8,629
  • 4
  • 25
  • 38