Python 简明教程
Python - Membership Operators
Python Membership Operators
Python 中的成员资格运算符帮助我们确定给定容器类型对象中是否出现项目,或者换句话说,项目是否为给定容器类型对象的成员。
The membership operators in Python help us determine whether an item is present in a given container type object, or in other words, whether an item is a member of the given container type object.
Types of Python Membership Operators
Python 有两个成员资格运算符: in 和 not in 。二者都返回布尔结果。 in 运算符的结果相反于 not in 运算符的结果。
Python has two membership operators: in and not in. Both return a Boolean result. The result of in operator is opposite to that of not in operator.
The 'in' Operator
“ in ”运算符用于检查子串是否存在于更大的 string 中,某项是否存在于列表或元组中,或者子列表或子元组是否包含在列表或元组中。
The "in" operator is used to check whether a substring is present in a bigger string, any item is present in a list or tuple, or a sub-list or sub-tuple is included in a list or tuple.
在以下示例中,检查不同的子字符串是否属于字符串 var="TutorialsPoint"。Python根据字符的 Unicode 值来区分字符。因此,“To”与“to”不同。还要注意,如果“in”运算符返回 True,则“not in”运算符求值为 False。
In the following example, different substrings are checked whether they belong to the string var="TutorialsPoint". Python differentiates characters on the basis of their Unicode value. Hence "To" is not the same as "to". Also note that if the "in" operator returns True, the "not in" operator evaluates to 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 −
It will produce the following output −
P in TutorialsPoint : True
tor in TutorialsPoint : True
in in TutorialsPoint : True
To in TutorialsPoint : False
The 'not in' Operator
The "not in" operator is used to check a sequence with the given value is not present in the object like string, list, tuple, etc.
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 −
It will produce the following 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”运算符来检查项目在列表或元组中的成员身份。
You can use the "in/not in" operator to check the membership of an item in the list or tuple.
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 −
It will produce the following 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。即使给出了以二进制、八进制或十六进制等其他格式表示的数字,成员运算符也会告诉它是否在序列中。
In the last case, "d" is a float but still it compares to True with 10 (an int) in the list. Even if a number expressed in other formats like binary, octal or hexadecimal are given the membership operators tell if it is inside the sequence.
>>> 0x14 in [10, 20, 30, 40]
True
Example
但是,如果您尝试检查两个连续的数字是否存在于列表或元组中,in 运算符将返回 False。如果列表/元组本身将连续的数字作为序列包含在内,那么它将返回 True。
However, if you try to check if two successive numbers are present in a list or tuple, the in operator returns False. If the list/tuple contains the successive numbers as a sequence itself, then it returns 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 −
It will produce the following output −
(10, 20) in (10, 20, 30, 40) : False
(10, 20) in ((10, 20), 30, 40) : True
Membership Operator with Sets
Python 的成员资格运算符也能很好地与 set 对象一起使用。
Python’s membership operators also work well with the set objects.
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 −
It will produce the following 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 仅对键的集合进行检查,而不是对值进行检查。
Use of in as well as not in operators with dictionary object is allowed. However, Python checks the membership only with the collection of keys and not values.
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 −
It will produce the following output −
2 in {1: 10, 2: 20, 3: 30} : True
20 in {1: 10, 2: 20, 3: 30} : False