Arguably, to a user of the language, these are imperceptible from independent. Changing one cannot change the other (except perhaps through some exotic double-underscore-prefixed function with which my vague knowledge of Python is unfamiliar)
>> a = [1,2,3]
>> b = a
>> a.append(4)
>> b #[1,2,3,4]
This is one of the things that throws off many beginners, and is an easy trap to fall into, not exotic at all.> But if a and b are both variables of the same Java class type, or Python lists, then after the assignment they refer to the same underlying object, so that if you make a change to a (e.g. by calling a class method on it, or appending an item to the list) then you see the same difference when you look at b.