gpt4 book ai didi

python - 了解 "is"运算符

转载 作者:IT老高 更新时间:2023-10-28 21:08:21 26 4
gpt4 key购买 nike

The is operator does not match the values of the variables, but the instances themselves.

这到底是什么意思?

我声明了两个名为 xy 的变量在两个变量中分配了相同的值,但是当我使用 is 运算符时它返回 false .

我需要澄清一下。这是我的代码。

x = [1, 2, 3]
y = [1, 2, 3]

print(x is y) # It prints false!

最佳答案

您误解了 is 运算符测试的内容。它测试两个变量是否指向相同的对象,而不是两个变量是否具有相同的值。

来自 is operator 的文档:

The operators is and is not test for object identity: x is y is true if and only if x and y are the same object.

请改用 == 运算符:

print(x == y)

这将打印 Truexy 是两个 独立的 列表:

x[0] = 4
print(y) # prints [1, 2, 3]
print(x == y) # prints False

如果你使用 id() function 你会看到 xy 有不同的标识符:

>>> id(x)
4401064560
>>> id(y)
4401098192

但如果你将 y 分配给 x 那么两者都指向同一个对象:

>>> x = y
>>> id(x)
4401064560
>>> id(y)
4401064560
>>> x is y
True

is 表明两者是同一个对象,它返回 True

请记住,在 Python 中,names are just labels referencing values ;您可以有多个名称指向同一个对象。 is 告诉您两个名称是否指向同一个对象。 == 告诉您两个名称是否指代具有相同值的对象。

关于python - 了解 "is"运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13650293/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com