8
A = [[]]*2
A[0].append("a")
A[1].append("b")
B = [[], []]
B[0].append("a")
B[1].append("b")
print "A: "+ str(A)
print "B: "+ str(B)
A: [['a', 'b'], ['a', 'b']]
B: [['a'], ['b']]
人們會期望的是,列表將是相同的作爲B列表中,不是這種情況下,兩個附加語句被應用到A [0]和A [1 ]。
爲什麼?
有對列表的在這個線程Python的*運營商的一個很好的解釋: http://stackoverflow.com/questions/974931/multiply-operator-applied-to-listdata-structure – 2010-07-02 01:19:33
@S。洛特:對我來說很清楚:兩種非常相似的形式,[]] * 2和[[],[]]在以相同方式操作時會產生非常不同的結果。爲什麼? – 2010-07-02 01:31:53