I have been into this "quirk" again, today. You have probably no idea if you didn't encounter it yourself before.
The current implementation keeps an array of integer objects for all integers between -5 and 256, when you create an int in that range you actually just get back a reference to the existing object. So it should be possible to change the value of 1. I suspect the behaviour of Python in this case is undefined. :-) ref.
Have a look at Python3 docs and see the stackoverflow discussions to learn more.
And, please be safe with the small integers.