如何使用理解从嵌套列表中获取平面列表?

2024-06-16 13:40:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个对象列表: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]

Tags: 对象inobj列表foritemsitemlist
1条回答
网友
1楼 · 发布于 2024-06-16 13:40:39
>>> 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]

相关问题 更多 >