刚接触python,python中notin怎么解释?求解释一下?

刚接触python,python中notin怎么解释?求解释一下?
最新回答
因为太帅被罚块

2020-10-17 09:28:17

in 是在的意思,作为成员检测操作符。

"in" 和 "not in" 运算符用于检测成员身份。例如 "x in s" 如果 *x* 是 *s* 的成员,则返回 true,否则返回 false。"x not in s" 则返回 "x in s" 的否定结果。

成员身份测试操作

-----------------------

"in" 和 "not in" 运算符用于检测成员身份。"x in s" 如果 *x* 是 *s* 的成员,则返回 true,否则返回 false。"x not in s" 则返回 "x in s" 的否定结果。所有内置序列和集合类型都支持此功能,对于字典,"in" 操作用于检测字典是否包含特定键。对于列表、元组、集合、frozenset、字典或 collections.deque 这类容器类型,表达式 "x in y" 等同于 "any(x is e or x == e for e in y)"。

对于字符串和字节类型,"x in y" 等价于 *x* 是 *y* 的子串。等价测试为 "y.find(x) != -1"。空字符串总是被视为任何其他字符串的子串,因此 """ in "abc"" 返回 "True"。

对于自定义类,如果定义了 "__contains__()" 方法,"x in y" 如果且仅如果 "y.__contains__(x)" 返回 true。

对于自定义类,如果没有定义 "__contains__()" 但定义了 "__iter__()","x in y" 如果在迭代 "y" 时产生与 "x == z" 相等的值,则返回 true。如果在迭代过程中引发异常,相当于 "in" 引发该异常。

最后,尝试旧式迭代协议:如果类定义了 "__iter__()" 方法,则 "x in y" 返回 true 如果在迭代过程中产生与 "x == z" 相等的值。如果在迭代过程中抛出异常,相当于 "in" 引发该异常。