2

Two lists that are identical by comparison but declared differently also update differently as well. Can someone help explain why?

L1 = [[0] * 2] * 2
L2 = [[0 for _ in xrange(2)] for _ in xrange(2)]
assert(L1 == L2)
for i in xrange(2):
    L1[0][i] = 1
    L2[0][i] = 1
print L1
print L2

The end result is

>>> [[1, 1], [1, 1]]
>>> [[1, 1], [0, 0]]
user1879926
  • 1,283
  • 3
  • 14
  • 24

0 Answers0