我试图创建一个对象列表(元素),其中每个元素包含对象列表(GaussPoints)。每个元素的高斯点数可以是可变的,尽管在下面的例子中为简单起见每个元素只有一个高斯点。包含对象列表的对象列表
class Element:
gp = []
class GaussPoint:
argument = 0
k = 0
elements = []
for ele in xrange(4):
k = k+1
anEle = Element()
aGP = GaussPoint()
aGP.argument = k
print k
elements.append(anEle)
elements[ele].gp.append(aGP)
print "testing the data structure:"
for ele in xrange(4):
print elements[ele].gp[0].argument
输出是:
1
2
3
4
testing the data structure:
1
1
1
1
我很期待将是:
1
2
3
4
testing the data structure:
1
2
3
4
莫名其妙的代码不会创建GaussPoints每个元素的一个新的列表,但追加到同一个。
我明显地误解了一些关于Python的基础知识。任何人都可以请帮忙?
谢谢,您指出我在正确的方向。尽管如此,问题仍然出现在列表“gp”中:'class Element: def __init __(self): self.gp = []' – mululu 2012-03-06 11:37:03