首页 > 解决方案 > 具有类属性的列表理解

问题描述

我想使用类属性来制作所有属性的单个列表:

from dataclasses import dataclass

@dataclass
class Foo:
    a: int
    b: int

data = [
    Foo(1,2),
    Foo(3,4)
]
print([[foo.a, foo.b] for foo in data])

但结果是属性列表的列表。我怎样才能有一个包含所有属性的列表[1,2,3,4]而不是[[1,2],[3,4]]

标签: pythonlistlist-comprehension

解决方案


我建议您使用itertools.chain.from_iterable扁平化中间列表

In [6]: import itertools

In [7]: print(list(itertools.chain.from_iterable([[foo.a, foo.b] for foo in data])))                                                                                                                               
[1, 2, 3, 4]

推荐阅读