列表中是否有一个简短的包含函数?

我看到人们正在使用any来收集另一个列表来查看一个项目是否存在于一个列表中,但是有一个快速的方法可以做到吗?:

if list.contains(myItem):
    # do something

你可以使用这个语法:

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 a
True
>>> a in a
True
>>> False in a
True
>>> False not in a
False
>>>         

如果该项目不存在,list方法index将返回-1 ,并且如果该项目存在,将返回该项目的索引。 或者在if语句中,您可以执行以下操作:

if myItem in list:
    #do things

您还可以使用以下if语句检查元素是否不在列表中:

if myItem not in list:
    #do things
链接地址: http://www.djcxy.com/p/5449.html

上一篇: Is there a short contains function for lists?

下一篇: Convert list to tuple in Python