两个变量在Python具有相同的id
:两个变量具有相同的ID,而不是列表或元组
a = 10
b = 10
a is b
>>> True
如果我需要两个list
S:
a = [1, 2, 3]
b = [1, 2, 3]
a is b
>>> False
根据this link Senderle回答说,不可变的对象引用具有相同的ID,像列表这样的可变对象具有不同的ID。
所以现在根据他的回答,元组应该有相同的标识 - 意思是:
a = (1, 2, 3)
b = (1, 2, 3)
a is b
>>> False
理想的情况下,元组是不可变的,它应该返回True
,但它返回False
!
是什么解释?
你有变量和对象(列表和元组)之间的区分 - 尽管有相同的列表,元组的元素时,你比较喜欢这两个对象你比较而不同的内存地址。 – dmitryro
我认为你误解了你连接的答案。不同的不可变对象具有不同的ID。但对于小于256的整数(在大多数解释器中),该值预先加载到内存中,因此在第一个示例中,a是b –
谢谢@JacquesGaudin!现在我对此有所了解。 –