问题:列表是否包含简短的包含功能?
我看到人们正在使用any
另一个列表来查看列表中是否存在某项,但是有一种快速的方法吗?
if list.contains(myItem):
# do something
回答 0
您可以使用以下语法:
if myItem in list:
# do something
同样,逆运算符:
if myItem not in list:
# do something
它适用于列表,元组,集合和字典(检查键)。
请注意,这是列表和元组中的O(n)操作,而集合和字典中是O(1)操作。
回答 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
>>>
回答 2
我最近想出了这条衬垫,用于获取True
列表中是否包含任何数量的项目,或者该列表中不包含任何项目或False
根本不包含任何项目。使用next(...)
会给它提供默认的返回值(False
),这意味着它的运行速度应比运行整个列表理解的速度快得多。
list_does_contain = next((True for item in list_to_test if item == test_item), False)
回答 3
如果该项目不存在,则list方法index
将返回,-1
如果该项目存在,则将返回该项目在列表中的索引。或者,if
您可以在语句中执行以下操作:
if myItem in list:
#do things
您还可以使用以下if语句检查元素是否不在列表中:
if myItem not in list:
#do things
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。