منطق این کد چیه

سلام خدمت شما
یه سوال داشتم
برای چی جواب این کدا باهم باید فرق کنه

a=[1,2,3,4,5]
b=a
a[0]=0
print(b[0])  

a=5
b=a
a=8
print(b)

جواب اولی میشه 0…ولی دومی همون5

قضیه اینه که لیست رو واقعا کپی نمیکنه. یه رفرنس براش ایجاد میکنه.

برای اینکه لیست رو واقعا کپی کنیم (و دو برابر فضا روی رم بگیره) باید با این روش کار کنیم:

>>> a = [1,2,3,4,5]
>>> b = a[:]
>>> a[0] = 0
>>> print(b[0])
1
>>> print(a[0])
0
5 پسندیده

ممنون