我在Python中for循環有奇怪的行爲。這個問題不完全是這一個,但很相似:如何修改這個python for循環?
a = []
b = [1,2,3,4]
for i in xrange (0,10):
a.append(b)
b[3] += 1
,其結果是:
a = [[1,2,3,14],[1,2,3,14],[1,2,3,14],[1,2,3,14],[1,2,3,14],[1,2,3,14],[1,2,3,14],[1,2,3,14],[1,2,3,14],[1,2,3,14]]
我期待的結果是
a = [[1,2,3,4],[1,2,3,5],[1,2,3,6],[1,2,3,7],.....,[1,2,3,14]]
我不知道爲什麼在每次迭代中,b [3]被添加到14,然後列表[1,2,3,14]被添加到a。我認爲b [3]在每次迭代中只應該增加1
這是因爲,要附加一個參考'B'到了''在循環的每次迭代中,不是'b'的副本。每個引用指向同一個'b',在你的循環結束時,'b [3] = 14'。 – Chris
嘗試在[此Python代碼可視化工具](http://people.csail.mit.edu/pgbovine/python/tutor.html#mode=edit)中粘貼代碼以查看究竟發生了什麼。 –
那麼我該如何解決它? – cuongptnk