我試圖創建一個對象列表(元素),其中每個元素包含對象列表(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