bs = [1, 2, 3]
print(id(bs))
print(id(bs[:]))
xs = bs[:]
xs[1] = [9, 9, 9]
print(bs)
print(xs)
-------------
4452573000
4452573064
[1, 2, 3]
[1, [9, 9, 9], 3]
Кажется, что bs[:]
делает глубокую копию в xs
bs = [1, 2, 3]
print(id(bs))
print(id(bs[:]))
xs = bs[:] = [4, 5, 6]
print(id(xs))
print(bs)
print(xs)
----------
4518600520
4518600584
4518600584
[4, 5, 6]
[4, 5, 6]
Кажется, что bs[:]
делает поверхностную копию xs
bs[:] = [4, 5, 6]
изменит исходный список bs
на [4, 5, 6]
. Но если просто сделать xs = bs[:]
и xs[1] = [9, 9, 9]
, это не повлияет на исходный список bs, который по-прежнему [1,2,3]
id
почти бесполезен для новичков, изучающих Python, потому что для извлечения любого полезного смысла из результатов требуется обманчиво высокий уровень понимания. - person user2357112 supports Monica   schedule 28.02.2019