Python 简明教程
Python - Membership Operators
Types of Python Membership Operators
Python 有两个成员资格运算符: in 和 not in 。二者都返回布尔结果。 in 运算符的结果相反于 not in 运算符的结果。
The 'in' Operator
“ in ”运算符用于检查子串是否存在于更大的 string 中,某项是否存在于列表或元组中,或者子列表或子元组是否包含在列表或元组中。
在以下示例中,检查不同的子字符串是否属于字符串 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)
它将生成以下 output −
P in TutorialsPoint : True
tor in TutorialsPoint : True
in in TutorialsPoint : True
To in TutorialsPoint : False
The 'not in' Operator
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)
它将生成以下 output −
P not in TutorialsPoint : False
tor not in TutorialsPoint : False
in not in TutorialsPoint : False
To not in TutorialsPoint : True
Membership Operator with Lists and Tuples
您可以使用“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)
它将生成以下 output −
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 (一个 int ) 比较为 True。即使给出了以二进制、八进制或十六进制等其他格式表示的数字,成员运算符也会告诉它是否在序列中。
>>> 0x14 in [10, 20, 30, 40]
True
Example
但是,如果您尝试检查两个连续的数字是否存在于列表或元组中,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)
它将生成以下 output −
(10, 20) in (10, 20, 30, 40) : False
(10, 20) in ((10, 20), 30, 40) : True
Membership Operator with Sets
Python 的成员资格运算符也能很好地与 set 对象一起使用。
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)
它将生成以下 output −
20 in {40, 10, 20, 30} : True
(10, 20) in {40, 30, (10, 20)} : True
Membership Operator with Dictionaries
允许像 dictionary 对象一样使用 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)
它将生成以下 output −
2 in {1: 10, 2: 20, 3: 30} : True
20 in {1: 10, 2: 20, 3: 30} : False