x = [1, 2, 3]y = [1, 2, 3]print x is y #It prints false!
拉丁的传说
浏览 756回答 2
2回答
慕桂英3389331
你误会了is操作员测试。它测试两个变量是否指向同一对象,如果两个变量具有相同的值,则不会。的文档中,is操作者:操作者is和is not测试对象标识:x is y当且仅当x和y是同一个对象。使用==运算符:print x == y这个指纹True. x和y是两个分开清单:x[0] = 4print(y) # prints [1, 2, 3]print(x == y) # prints False如果您使用id()功能你会看到的x和y有不同的标识符:>>> id(x)4401064560>>> id(y)4401098192但如果你要y到x然后,两者都指向同一个对象:>>> x = y>>> id(x)4401064560>>> id(y)4401064560>>> x is yTrue和is显示这两个对象都是相同的对象,它将返回True.记住在Python里,名称只是引用值的标签。;您可以让多个名称指向同一个对象。is告诉您两个名称是否指向一个和同一个对象。==告诉您两个名称是否引用具有相同值的对象。