2016-05-10 2 views
1

私はオブジェクトのリストを持っている:以下のようなobj_list入れ子になったリストから理解を使ってフラットなリストを取得するにはどうすればいいですか?

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

は今、私は理解を使って以下のようなすべてのアイテムを含むリストをしたい:

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

次のように私が試してみました:

[item for item in obj.items for obj in obj_list] 

答えて

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] 
+0

ありがとうございました。私はこの[obj.itemsの項目のobj_listのobjの項目]が必要でした。 –

関連する問題