列表是否包含简短的包含功能?

我看到人们正在使用any另一个列表来查看列表中是否存在某个项目,但是有一种快速的方法吗?


if list.contains(myItem):

    # do something


慕的地8271018
浏览 394回答 3
3回答

蝴蝶刀刀

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

湖上湖

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

RISEBY

我最近想出了这条衬里,用于获取True列表中是否包含任何数量的项目,或者列表中是否不包含任何项目False。使用next(...)会给它一个默认的返回值(False),这意味着它的运行速度应比运行整个列表理解的速度快得多。list_does_contain = next((True for item in list_to_test if item == test_item), False)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python