사람들이 any
목록에 항목이 있는지 확인하기 위해 다른 목록을 수집 하는 데 사용 하지만 빠른 방법이 있습니까? :
if list.contains(myItem):
# do something
답변
이 구문을 사용할 수 있습니다 :
if myItem in list:
# do something
또한 역 연산자 :
if myItem not in list:
# do something
목록, 튜플, 세트 및 dicts (체크 키)에 적합합니다.
참고 이 튜플리스트의 O (n)를 연산하고,하지만 세트 dicts에서 O (1) 동작.
답변
다른 사람들이 말한 것 외에도 메소드 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
목록에 항목이 여러 번 False
포함되어 있는지 , 또는 항목이 없거나 전혀 포함되어 있지 않은 경우이 라이너를 최근에 생각해 냈습니다 . 를 사용 next(...)
하면 기본 반환 값 ( False
) 이 제공 되며 전체 목록 이해를 실행하는 것보다 훨씬 빠르게 실행됩니다.
list_does_contain = next((True for item in list_to_test if item == test_item), False)
답변
아이템이 존재하지 않으면 list 메소드 index
는 -1
아이템을 반환하고리스트에 아이템의 인덱스가 있으면이를 반환합니다. 또는 if
성명서에서 다음을 수행 할 수 있습니다.
if myItem in list:
#do things
다음 if 문을 사용하여 요소가 목록에 없는지 확인할 수도 있습니다.
if myItem not in list:
#do things