Python - 成员运算符
Python 成员运算符
Python 中的成员运算符用于帮助我们判断某个项是否存在于给定的容器类型对象中,或者换句话说,判断某个项是否是给定容器类型对象的成员。
Python 成员运算符的类型
Python 有两种成员运算符:in 和 not in。两者都返回布尔值。in 运算符的结果与 not in 运算符的结果相反。
"in" 运算符
"in" 运算符用于检查子字符串是否出现在更大的字符串中、列表或元组中是否存在某项,或者列表或元组中是否包含子列表或子元组。
Python 成员 "in" 运算符示例
在以下示例中,检查不同的子字符串是否属于字符串 var="Python"。Python 根据 Unicode 值区分字符。因此 "To" 与 "to" 不同。另请注意,如果 "in" 运算符返回 True,则 "not in" 运算符的结果为 False。
var = "Python" 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 Python : True tor in Python : True in in Python : True To in Python : False
"not in" 运算符
"not in" 运算符用于检查序列中给定的值是否不存在于对象中,如字符串、列表、元组等。
Python 成员 "not in" 运算符示例
var = "Python" 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 Python : False tor not in Python : False in not in Python : False To not in Python : 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" 是 float 类型,但它仍然与列表中的 10(一个 int)比较为 True。即使给出以二进制、八进制或十六进制表示的数字,成员运算符也能判断它是否在序列中。
>>> 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 的成员运算符与 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)
它将产生以下输出 −
20 in {40, 10, 20, 30} : True
(10, 20) in {40, 30, (10, 20)} : True
字典的成员运算符
允许在 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)
它将产生以下 输出 −
2 in {1: 10, 2: 20, 3: 30} : True
20 in {1: 10, 2: 20, 3: 30} : False