2024-04-19 23:56:22 发布
网友
我看到人们正在使用any来收集另一个列表,以查看列表中是否存在某个项,但是否有一种快速的方法可以这样做?以下内容:
any
if list.contains(myItem): # do something
您可以使用以下语法:
if myItem in list: # do something
此外,逆运算符:
if myItem not in list: # do something
它对列表、元组、集合和dict(check key)都很有用。
请注意,这是列表和元组中的O(n)操作,而在集合和dict中是O(1)操作。
除了其他人所说的,您可能还想知道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 >>>
我最近想出了这一行代码,如果一个列表包含任何数量的项,或者如果它不包含任何项,或者根本不包含任何项,那么就可以得到True。使用next(...)会给它一个默认的返回值(False),这意味着它应该比运行整个列表理解快得多。
True
next(...)
False
list_does_contain = next((True for item in list_to_test if item == test_item), False)
您可以使用以下语法:
此外,逆运算符:
它对列表、元组、集合和dict(check key)都很有用。
请注意,这是列表和元组中的O(n)操作,而在集合和dict中是O(1)操作。
除了其他人所说的,您可能还想知道
in
所做的是调用list.__contains__
方法,您可以在编写的任何类上定义该方法,并且可以非常方便地使用python。愚蠢的用途可能是:
我最近想出了这一行代码,如果一个列表包含任何数量的项,或者如果它不包含任何项,或者根本不包含任何项,那么就可以得到
True
。使用next(...)
会给它一个默认的返回值(False
),这意味着它应该比运行整个列表理解快得多。list_does_contain = next((True for item in list_to_test if item == test_item), False)
相关问题 更多 >
编程相关推荐