["python","pointers","variables","identifier"]
Are Python variables pointers? Or else, what are they?

Variables in Python are just pointers, as far as I know. Based on this rule, I can assume that the result for this code snippet: i = 5 j = i j = 3 print(i) would be 3. But I got an unexpected result for me, and it was 5. Moreover, my Python book does cover this example: i = [1,2,3] j = i i[0] = 5 print(j) The result would be [5,2,3]. What am I understanding wrong?
We call them references. They work like this i = 5 # create int(5) instance, bind it to i j = i # bind j to the same int as i j = 3 # create int(3) instance, bind it to j print i # i still bound to the int(5), j bound to the int(3) (Sidenote: Small ints are interned, but that isn't important to this explanation) i = [1,2,3] # create the list instance, and bind it to i j = i # bind j to the same list as i i[0] = 5 # change the first item of i print j # j is still bound to the same list as i