我在python代码下运行,a和b将指向我所知的相同对象。
>>> a=10
>>> b=10
>>> a is b
True
但是当我将10更改为更大的数字(例如100000)时,结果很奇怪。
>>> a=100000
>>> b=100000
>>> a is b
False
似乎python在内存中创建了两个100000。
然后我尝试下面的代码:
>>> lst=[10,10]
>>> lst[0] is lst[1]
True
>>> lst=[100000 ,100000 ]
>>> lst[0] is lst[1]
True
在列表中,数字(10或100000)都在同一个对象中。
这就是我的困惑。 为什么当数字越大,Python创建两个对象?为什么在List中,它仍然使用一个副本?