选择对象列表中的所有对象(在Python中)

时间:2014-10-23 13:55:19

标签: python arrays list oop object

我遇到以下问题。我有一个类,例如,定义如下:

class Example:
  def __init__(self,a):
    self.a = a    

现在我创建了一个实例列表,例如:

X = [Example(1) for i in range(5)]

现在,我想要做的是访问列表中所有实例的所有a值(同时),以便结果如下:

>> [1,1,1,1,1]   

即,能够使用列表的实例' a与标准矢量/数组/列表一样。但是,我很难理解如何实现这一目标。我首先想到的是写:

X[:].a

但这确实不起作用。当涉及到Python时,我仍然是一个新手,所以我想问你是否有任何简单的公式/技巧如何解决这个问题。

由于

2 个答案:

答案 0 :(得分:2)

X[:].a

表示“创建列表X的副本,然后访问该列表的a属性 ”(不存在)。相反,你需要像:

[x.a for x in X]

表示“访问列表a中每个对象x的{​​{1}}属性,并使用这些值填充新列表”。在更具功能性的情绪中,您可能会写出类似的内容:

X

将提供与列表推导相同的结果(在Python 2.x中)。

答案 1 :(得分:1)

尝试列表理解

[i.x for i in X]