在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ 兩個變量引用內(nèi)容一樣的字符串,使用is比較,為什么結(jié)果時為True,時為Fals

兩個變量引用內(nèi)容一樣的字符串,使用is比較,為什么結(jié)果時為True,時為False?

python中,使用is比較兩個字符串,為什么會出現(xiàn)下面的結(jié)果:

In [1]: x = 'ab'
        y = 'ab'
        x is y
Out[1]: True

In [2]: x = 'a123b'
        y = 'a123b'
        x is y
Out[2]: True

In [3]: x = 'a,b'
        y = 'a,b'
        x is y
Out[3]: False

In [4]: x = '#1'
        y = '#1'
        x is y
Out[4]: False
回答
編輯回答
淡墨

is 是比較兩個對象的id是否相同。
當(dāng)二者為整型時:如果值在 [-5, 256]之間,兩個變量使用的是同一個對象池里的對象,所以地址是一樣的;值超過這個范圍,后者定義的時候就得新開辟一塊內(nèi)存來存儲,地址就不一樣了;
當(dāng)二者為字符串時:如果值僅包含數(shù)字、字母,則二者是一致的;
當(dāng)二者為字典、元組、列表時,二者是不一致的。

2018年6月16日 20:28