My understanding for shallow copy is
a = [1,2,3]
b = a
a, b # ([1, 2, 3], [1, 2, 3])
a[0] = 99
a, b # ([99, 2, 3], [99, 2, 3])
However, Python 3 document says list.copy() Return a shallow copy of the list. Equivalent to a[:]. But this seems like a deep copy to me. Why does the documentation call it shallow copy?
a = [1,2,3]
b = a.copy()
a, b # ([1, 2, 3], [1, 2, 3])
a[0] = 99
a, b # ([99, 2, 3], [1, 2, 3])