私は、初心者からPythonまでの初心者ですから、なぜ次のような状況が起こるのか教えてください。 次のコードを考えてみましょう:あなたは上記のコードから見ることができるように、私はなぜprint id(A[0]) == id(B[0])
最初の1にevalutes True
が、私はどちらかの変更反対、リストAをスライスし、Bにコピーしますが、Pythonスライスは同じID位置を示します
>>> A = [1, 2, 3, 4]
>>> B = A[0:2]
>>> print id(A) == id(B)
False
>>> print id(A[0]) == id(B[0])
True #Why?
>>> A[0] = 9
>>> A
[9, 2, 3, 4]
>>> B
[1, 2]
>>> print id(A[0]) == id(B[0])
False #Contradiction?
をAまたはBの価値の?
[CPythonキャッシュの小さい整数](http://stackoverflow.com/questions/306313/is-operator-behaves-beex-withexpectedly-with-integers)です。したがって、-5〜256の値はいつでも同じIDになりますそれを確認してください。 –
http://stackoverflow.com/questions/28329498/why-does-a-space-affect-the-identity-comparison-of-equal-strings/28329522#28329522 –