programing

리스트에 쇼트 포함 기능이 있나요?

yoursource 2022. 11. 1. 22:16
반응형

리스트에 쇼트 포함 기능이 있나요?

리스트의 확인 방법xs아이템이 포함되어 있습니까?

if xs.contains(item):
    ...

용도:

if my_item in some_list:
    ...

또한 역연산:

if my_item not in some_list:
    ...

목록, 튜플, 세트 및 딕트(체크 키)에 대해 올바르게 작동합니다.

이것은 리스트와 튜플에서는 O(n) 연산이지만 세트 및 딕트에서는 O(1) 연산입니다.

다른 사람들이 말한 것 외에, 당신은 또한 무엇을 알고 싶을지도 모릅니다.in콜을 발신하는 것입니다.list.__contains__method: 작성한 모든 클래스에서 정의할 수 있으며 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)

리스트 방식index돌아온다-1항목이 없는 경우, 목록에 있는 항목의 색인을 반환합니다.다른 방법으로if다음 작업을 수행할 수 있습니다.

if myItem in list:
    #do things

다음 if 문을 사용하여 목록에 요소가 없는지 확인할 수도 있습니다.

if myItem not in list:
    #do things

리스트 방식도 있습니다.

[2, 51, 6, 8, 3].__contains__(8)
# Out[33]: True
[2, 51, 6, 3].__contains__(8)
# Out[33]: False

다른 방법이 하나 더 있습니다.index하지만 이게 문제가 있는 건지 없는지는 잘 모르겠어요.

list = [5,4,3,1]
try:
    list.index(2)
    #code for when item is expected to be in the list
    print("present")
except:
    #code for when item is not expected to be in the list
    print("not present")

출력:

존재하지 않다

언급URL : https://stackoverflow.com/questions/12934190/is-there-a-short-contains-function-for-lists

반응형