Python 身份运算符

晚间偷亲

Python 身份运算符

Python有两个身份运算符is和is not。两者都返回相反的布尔值。当操作数对象共享相同的内存位置时,”in”运算符返回True。对象的内存位置可以通过”id()”函数获取。如果两个变量的id()相同,则”in”运算符返回True(因此,is not返回False)。

a="TutorialsPoint"
b=a
print ("id(a), id(b):", id(a), id(b))
print ("a is b:", a is b)
print ("b is not a:", b is not a)

它将产生以下 输出

id(a), id(b): 2739311598832 2739311598832
a is b: True
b is not a: False

列表和元组对象不同,这在第一眼看起来可能很奇怪。在下面的例子中,两个列表 “a” 和 “b” 包含相同的项目。但是它们的 id() 不同。

a=[1,2,3]
b=[1,2,3]
print ("id(a), id(b):", id(a), id(b))
print ("a is b:", a is b)
print ("b is not a:", b is not a)

它会产生以下 输出

id(a), id(b): 1552612704640 1552567805568
a is b: False
b is not a: True

列表或元组仅包含各个项的内存位置,而不包含项本身。因此,变量 “a”包含在某个位置上的10、20和30整数对象的地址,这个位置可能与变量 “b”的位置不同。

print (id(a[0]), id(a[1]), id(a[2]))
print (id(b[0]), id(b[1]), id(b[2]))

这将产生以下结果: 输出

140734682034984 140734682035016 140734682035048
140734682034984 140734682035016 140734682035048

因为“a”和“b”两个位置不同,“is”运算符即使两个列表包含相同的数字,也会返回False。

版权声明:本页面内容旨在传播知识,为用户自行发布,若有侵权等问题请及时与本网联系,我们将第一时间处理。E-mail:284563525@qq.com

目录[+]

取消
微信二维码
微信二维码
支付宝二维码