3 回答

TA贡献1801条经验 获得超8个赞
您可以使用以下语法:
if myItem in list:
# do something
同样,逆运算符:
if myItem not in list:
# do something
它适用于列表,元组,集合和字典(检查键)。
请注意,这是列表和元组中的O(n)操作,而集合和字典中是O(1)操作。

TA贡献2003条经验 获得超2个赞
除了别人说过的话,您可能还想知道in调用该list.__contains__方法的意思,您可以在编写的任何类上定义该方法,并且可以非常方便地全面使用python。
愚蠢的用途可能是:
>>> class ContainsEverything:
def __init__(self):
return None
def __contains__(self, *elem, **k):
return True
>>> a = ContainsEverything()
>>> 3 in a
True
>>> a in a
True
>>> False in a
True
>>> False not in a
False
>>>

TA贡献1856条经验 获得超5个赞
我最近想出了这条衬里,用于获取True列表中是否包含任何数量的项目,或者列表中是否不包含任何项目False。使用next(...)会给它一个默认的返回值(False),这意味着它的运行速度应比运行整个列表理解的速度快得多。
list_does_contain = next((True for item in list_to_test if item == test_item), False)
添加回答
举报