我遇到了这个问题,
经过以下操作后a
的值是什么?
a = (0100 == 0b10 ** 0x6) and ("mora" not in "thora")
这里的第一个括号是可以理解的,但是我不知道第二个括号是如何工作的?它会检查两个单词中的每个字母吗?
谢谢!
答案 0 :(得分:1)
"mora" in "thora"
检查单词mora
中是否包含整个单词thora
。例如:
"mora" in "thora" -> False
"ora" in "thora" -> True, because th-ora contains the whole "ora" word
添加not
时,它会检查mora
中是否没有thora
。
在您的情况下,("mora" not in "thora")
返回True
,因为单词thora
不包含单词mora
答案 1 :(得分:1)
("mora" in "thora")
检查“ mora”是否为“ thora”中的子字符串
如此
("mora" not in "thora")
检查“ mora”是否不是“ thora”中的子字符串
答案 2 :(得分:1)
条件使用__contains__
方法或“ dunder”包含魔术方法。此实现可能会因您的类型而异。
在此特定示例中,它将检查字符串mora
中是否不包含字符串thora
以下是该运算符的其他一些例子,
Python 3.4.4 (default, Jul 9 2018, 09:26:46)
[GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> "book" in "books"
True
>>> 1 in [1, 2, 3, 4]
True
>>> 12 in [1, 2, 3, 4]
False
>>> 'a' in {1, 2, 3}
False
>>> 'foo' in {'foo': 'bar', 'bat': 'baz'}
True
您可以在自己的类中实现此功能。 here比较了这些操作针对不同数据类型的时间复杂度。