Python 成员运算符怎么用?in 和 not in 操作符详解

文章导读
上一个 测验 下一个 Python 成员运算符 Python 中的成员运算符用于帮助我们判断某个项是否存在于给定的容器类型对象中,或者换句话说,判断某个项是否是给定容器类型对象的成员。
📋 目录
  1. A Python 成员运算符
  2. B Python 成员运算符的类型
  3. C 与列表和元组一起使用成员运算符
  4. D 与集合一起使用成员运算符
  5. E 字典的成员运算符
A A

Python - 成员运算符



上一个
测验
下一个

Python 成员运算符

Python 中的成员运算符用于帮助我们判断某个项是否存在于给定的容器类型对象中,或者换句话说,判断某个项是否是给定容器类型对象的成员。

Python 成员运算符的类型

Python 有两种成员运算符:innot 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