我看到人們正在使用any
收集另一份清單,看看是否在列表中存在的項目,但有一個快速的方法來只是做?:列表是否有一個簡短的包含函數?
if list.contains(myItem):
# do something
我看到人們正在使用any
收集另一份清單,看看是否在列表中存在的項目,但有一個快速的方法來只是做?:列表是否有一個簡短的包含函數?
if list.contains(myItem):
# do something
你可以使用這個語法:
if myItem in list:
# do something
而且,逆算子:
if myItem not in list:
# do something
它是列表,元組,組和類型的字典(檢查鍵)做工精細。
注意這是在列表和元組中的O(n)操作,但在集合和字符串中是O(1)操作。
如果該項目不存在,則列表方法index
將返回-1
,並且如果該項目不存在,將返回該項目的索引。或者在if
語句,您可以執行以下操作:
if myItem not in list:
#do things
如果元素不存在,那麼'index'方法不會返回-1,它會拋出一個'ValueError'異常。 – MondKin
除了說什麼其他:
if myItem in list:
#do things
您還可以檢查元素是否不在列表與if語句如下,您可能也有興趣知道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
>>>
我最近想出了這樣一個襯墊用於獲取True
如果列表包含任何數量的項目的出現,或False
如果它不包含任何事件或任何在所有。使用next(...)
爲此提供了默認返回值(False
),意味着它應該比運行整個列表理解運行速度快得多。
list_does_contain = next((True for item in list_to_test if item == test_item), False)
在我的情況下,我有一個名爲Category的對象列表,需要它僅測試屬性Link,所以這個解決方案適合我的情況。謝謝 – rodrigorf
用含有numpy的陣列的列表,將這種檢查對於numpy的實例內部numpy的實例或值? –
小心!這匹配,而這很可能是你沒有想到的:'o =' - skip'; o(「--skip-ias」); #返回True!' –