创建 class 变量的列表时,如何为单个属性创建所有值的列表?

When creating a list of a class variables, how do I create a list of all values for a single attribute?

我有一个 class 有很多属性。我已经创建了这些 class 变量的列表。我正在尝试访问每个列表条目的 attribute2。考虑下面的例子。

class District:

    def __init__(self, num, a, p):
        self.num = num  
        self.Area = a  
        self.Perimeter = p

dist_list = [None] * 5
for i in range(5):
    dist_list[i] = District(i, Area[i], Perimeter[i])

Python 中是否有一个简单的命令可以让我从 dist_list 访问所有边界?也许是 dist_list(Population) 之类的东西?

您有一个实例列表。您可以使用列表理解来收集每个实例的 Perimeter 属性:

perimeters = [x.Perimeter for x in dist_list]

(您也可以使用列表理解来定义 dist_list 本身

dist_list = [District(i, Area[i], Perimeter[i]) for i in range(5)]

)

@Chepner 的回答很好我想我也会提到

perimeters = map(lambda x : getattr(x,"Perimeter"),dist_list)

Perimeters 将是一个地图对象,您可以将其转换为列表。

perimeters = list(perimeters)