2024-09-21 11:37:20 发布
网友
我看到人们正在使用any收集另一个列表,以查看列表中是否存在某个项目,但是有没有一种快速的方法可以这样做
any
if list.contains(myItem): # do something
我最近提出了一个线性表达式,用于在列表中包含任意数量的项目时获取True,或者在列表中不包含任何项目或任何项目时获取False。使用next(...)会给它一个默认的返回值(False),这意味着它应该比运行整个列表快得多
True
False
next(...)
list_does_contain = next((True for item in list_to_test if item == test_item), False)
除了其他人所说的之外,您可能还想知道in所做的是调用list.__contains__方法,您可以在编写的任何类上定义该方法,并且可以非常方便地充分使用python。
in
list.__contains__
默认用途可能是:
>>> 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 >>>
您可以使用以下语法:
if myItem in list: # do something
此外,逆运算符:
if myItem not in list: # do something
它适用于列表、元组、集合和dict(检查键)
注意这在列表和元组中是一个O(n)操作,但在集合和dict中是一个O(1)操作
我最近提出了一个线性表达式,用于在列表中包含任意数量的项目时获取
True
,或者在列表中不包含任何项目或任何项目时获取False
。使用next(...)
会给它一个默认的返回值(False
),这意味着它应该比运行整个列表快得多list_does_contain = next((True for item in list_to_test if item == test_item), False)
除了其他人所说的之外,您可能还想知道
in
所做的是调用list.__contains__
方法,您可以在编写的任何类上定义该方法,并且可以非常方便地充分使用python。默认用途可能是:
您可以使用以下语法:
此外,逆运算符:
它适用于列表、元组、集合和dict(检查键)
注意这在列表和元组中是一个O(n)操作,但在集合和dict中是一个O(1)操作
相关问题 更多 >
编程相关推荐