创建 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)
我有一个 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)