Python中的成员运算符帮助我们确定某个元素是否存在于给定的容器类型对象中,或者换句话说,确定该元素是否为给定容器类型对象的成员。
Python成员运算符的类型
Python有两种成员运算符:in
和 not in
。两者都返回布尔结果。in
运算符的结果与 not in
运算符相反。
in
运算符
in
运算符用来检查一个子字符串是否存在于一个更大的字符串中,或者一个元素是否存在于列表或元组中,或者一个子列表或子元组是否包含在一个列表或元组内。
Python成员in
运算符示例
在下面的例子中,不同的子字符串被检查是否属于字符串 var="TutorialsPoint"
。Python基于字符的Unicode值来区分字符。因此 "To"
不等于 "to"
。同时请注意,如果 in
运算符返回 True
,则 not in
运算符的结果为 False
。
var = "TutorialsPoint"
a = "P"
b = "tor"
c = "in"
d = "To"
print(a, "in", var, ":", a in var)
print(b, "in", var, ":", b in var)
print(c, "in", var, ":", c in var)
print(d, "in", var, ":", d in var)
这将产生以下输出:
P in TutorialsPoint : True
tor in TutorialsPoint : True
in in TutorialsPoint : True
To in TutorialsPoint : False
not in
运算符
not in
运算符用来检查一个序列是否不在像字符串、列表、元组等这样的对象内。
Python成员not in
运算符示例
var = "TutorialsPoint"
a = "P"
b = "tor"
c = "in"
d = "To"
print(a, "not in", var, ":", a not in var)
print(b, "not in", var, ":", b not in var)
print(c, "not in", var, ":", c not in var)
print(d, "not in", var, ":", d not in var)
这将产生以下输出:
P not in TutorialsPoint : False
tor not in TutorialsPoint : False
in not in TutorialsPoint : False
To not in TutorialsPoint : True
列表和元组中的成员运算符
你可以使用 in/not in
运算符来检查一个元素是否存在于列表或元组中。
var = [10, 20, 30, 40]
a = 20
b = 10
c = a - b
d = a / 2
print(a, "in", var, ":", a in var)
print(b, "not in", var, ":", b not in var)
print(c, "in", var, ":", c in var)
print(d, "not in", var, ":", d not in var)
这将产生以下输出:
20 in [10, 20, 30, 40] : True
10 not in [10, 20, 30, 40] : False
10 in [10, 20, 30, 40] : True
10.0 not in [10, 20, 30, 40] : False
在最后一个例子中,d
是一个浮点数,但它仍然可以与列表中的10(一个整数)进行比较。即使是以其他格式如二进制、八进制或十六进制给出的数字,成员运算符也能判断它是否在序列内。
>>> 0x14 in [10, 20, 30, 40]
True
示例
然而,如果你试图检查连续的数字是否在一个列表或元组中,in
运算符会返回 False
。如果列表/元组包含连续的数字作为序列本身,则返回 True
。
var = (10, 20, 30, 40)
a = 10
b = 20
print((a, b), "in", var, ":", (a, b) in var)
var = ((10, 20), 30, 40)
a = 10
b = 20
print((a, b), "in", var, ":", (a, b) in var)
这将产生以下输出:
(10, 20) in (10, 20, 30, 40) : False
(10, 20) in ((10, 20), 30, 40) : True
集合中的成员运算符
Python的成员运算符也适用于集合对象。
var = {10, 20, 30, 40}
a = 10
b = 20
print(b, "in", var, ":", b in var)
var = {(10, 20), 30, 40}
a = 10
b = 20
print((a, b), "in", var, ":", (a, b) in var)
这将产生以下输出:
20 in {40, 10, 20, 30} : True
(10, 20) in {40, 30, (10, 20)} : True
字典中的成员运算符
允许使用 in
和 not in
运算符与字典对象。但是,Python只检查键的集合而不是值。
var = {1: 10, 2: 20, 3: 30}
a = 2
b = 20
print(a, "in", var, ":", a in var)
print(b, "in", var, ":", b in var)
这将产生以下输出:
2 in {1: 10, 2: 20, 3: 30} : True
20 in {1: 10, 2: 20, 3: 30} : False