理解Python的“is”操作符

理解Python的“is”操作符

这个is运算符不匹配变量的值,而匹配实例本身。

这到底是什么意思?

我声明了两个名为xy在两个变量中分配相同的值,但当我使用is接线员。

我需要澄清。这是我的密码。

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告诉您两个名称是否指向一个和同一个对象。==告诉您两个名称是否引用具有相同值的对象。

开心每一天1111

is只有当它们实际上是同一个对象时才返回true。如果他们是一样的,一个改变也会出现在另一个。这是区别的一个例子。>>> x = [1, 2, 3]>>> y = [1, 2, 3]>>> print x is yFalse>>> z = y>>> print y is zTrue>>> print x is zFalse>>> y[0] = 5>>> print z[5, 2, 3]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python