Novice question here. I'm confused as to why, only under certain syntax, a list is *automatically* updated when the other list it's assigned to gets updated. For example,

If we assign 'a' to 'b' and update 'b', 'a' remains unaffected:

```
>>> b = [1,1,0]
>>> a = b
a = [1,1,0]
>>> b = [0,0,0]
a = [1,1,0]

```

However, if we re-write the last update command as:

```
>>> b[:2] = [0]*2
a = [0,0,0] 

```

Why is that?