logo

Python의 목록에 요소가 있는지 확인하십시오.

목록은 모든 데이터 유형의 요소를 컬렉션으로 저장하므로 Python에서 중요한 컨테이너입니다. 일일 프로그래밍에는 특정 목록 작업에 대한 지식이 필요합니다. 이 기사에서는 값이 목록에 있는지 또는 사용하지 않는지 확인하는 가장 빠른 방법에 대해 설명합니다. 파이썬 .



  Input:   test_list = [1, 6, 3, 5, 3, 4]  3 # Check if 3 exist or not.   Output:   True   Explanation:   The output is True because the element we are looking is exist in the list.>

Python의 목록에 요소가 있는지 확인하십시오.

다음을 사용하여 목록에 요소가 있는지 확인하십시오. ~에 성명

이 방법에서는 모든 요소를 ​​반복하는 루프를 쉽게 사용하여 대상 요소의 존재를 확인합니다. 이는 목록에 요소가 있는지 확인하는 가장 간단한 방법입니다. Python은 요소가 목록에 존재하는지 여부를 확인하는 가장 일반적인 방법입니다. 이 특별한 방법은 요소가 목록에 있으면 True를 반환하고 요소가 목록에 없으면 False를 반환합니다. 이 확인 접근 방식을 실행하기 위해 목록을 정렬할 필요는 없습니다.

파이썬3
lst=[ 1, 6, 3, 5, 3, 4 ] #checking if element 7 is present # in the given list or not i=7 # if element present then return # exist otherwise not exist if i in lst: print('exist') else: print('not exist')>

산출
not exist>

시간 복잡도: 오(1)
보조 공간: O(n), 여기서 n은 요소의 총 개수입니다.

루프를 사용하여 목록에 요소가 있는지 확인

주어진 Python 코드는 이름이 지정된 목록을 초기화합니다.test_list>일부 정수 요소가 있습니다. 그런 다음 다음을 사용하여 목록의 각 요소를 반복합니다.for>고리. 내부 고리 , 현재 요소가 있는지 확인합니다.i>다음을 사용하면 값 4와 같습니다.if>성명. 조건이 true이면 Element Exists를 콘솔에 인쇄합니다. 코드는 목록에 숫자 4가 있으면 메시지를 출력하며, 이 경우 목록에 숫자 4가 있으므로 Element Exists가 인쇄됩니다.[1, 6, 3, 5, 3, 4]>.

파이썬3
# Initializing list test_list = [1, 6, 3, 5, 3, 4] # Checking if 4 exists in list for i in test_list: if(i == 4): print('Element Exists')>

산출:

Element Exists>

시간 복잡도: 에)
보조 공간: 오(1)

any() 함수를 사용하여 목록에 요소가 있는지 확인하십시오.

이는 다음을 활용하여 달성됩니다. any()>기능 생성기 표현식을 사용합니다. 생성기 표현식은 각 요소를 반복합니다.test_list>목록에 두 번 이상 나타나는지 확인합니다. 이 검사 결과는 변수에 저장됩니다.result>. 마지막으로 코드는 중복된 요소가 있는지 여부를 나타내는 메시지를 인쇄합니다. 문자열에 목록 요소가 포함되어 있습니까? 중복된 요소가 있으면 True이고 문자열에 목록 요소가 포함되어 있습니까? 중복된 요소가 없으면 False입니다.

파이썬3
# Initializing list test_list = [1, 6, 3, 5, 3, 4] result = any(item in test_list for item in test_list) print('Does string contain any list element : ' +str(bool(result)))>

산출:

Does string contain any list element : True>

count() 함수를 사용하여 목록에 요소가 있는지 확인

우리는 내장된 것을 사용할 수 있습니다 파이썬 목록 count() 메서드를 사용하여 전달된 요소가 목록에 있는지 확인합니다. 전달된 요소가 목록에 존재하는 경우 세다() 메소드는 전체 목록에서 발생 횟수를 표시합니다. 0이 아닌 양수이면 목록에 요소가 존재한다는 의미입니다. 다음을 사용하여 목록에 요소가 있는지 확인하는 방법을 보여줍니다. 세다() .

파이썬3
# Initializing list test_list = [10, 15, 20, 7, 46, 2808] print('Checking if 15 exists in list') # number of times element exists in list exist_count = test_list.count(15) # checking if it is more than 0 if exist_count>0: print('예, 15가 목록에 존재합니다') else: print('아니요, 15가 목록에 존재하지 않습니다')>

산출:

Checking if 15 exists in list Yes, 15 exists in list>

bisect_left를 사용한 정렬을 사용하여 목록에 요소가 있는지 확인하고 설정합니다.

목록을 세트로 변환한 후 사용 그것 그냥 사용하는 것보다 더 효율적일 수 있습니다. 그러나 효율성을 장점으로 삼는 데에는 부정적인 면도 있습니다. 그 중 하나는 목록의 순서가 유지되지 않는다는 점이며, 새 목록을 선택하는 경우 추가 공간을 사용해야 합니다. 또 다른 단점은 집합이 이중성을 허용하지 않으므로 중복된 요소가 원본 목록에서 제거된다는 것입니다. 요소 존재 여부를 테스트하는 기존 이진 검색 방식에서는 목록이 먼저 정렬되어야 하므로 요소 순서가 유지되지 않습니다. 이등분_왼쪽() 발견된 요소의 첫 번째 항목을 반환하고 유사하게 작동했습니다. 하한() C++ STL에서.

메모: bisect 함수는 요소를 삽입할 위치만 명시하고 요소가 존재하는지 여부에 대한 세부 정보는 명시하지 않습니다.

다음을 사용하여 목록에 요소가 있는지 확인하는 방법 시연 세트() + 와 종류() + 이등분_왼쪽()

파이썬3
from bisect import bisect_left ,bisect # Initializing list  test_list_set = [ 1, 6, 3, 5, 3, 4 ] test_list_bisect = [ 1, 6, 3, 5, 3, 4 ] print('Checking if 4 exists in list ( using set() + in) : ') # Checking if 4 exists in list  # using set() + in test_list_set = set(test_list_set) if 4 in test_list_set : print ('Element Exists') print('Checking if 4 exists in list ( using sort() + bisect_left() ) : ') # Checking if 4 exists in list  # using sort() + bisect_left() test_list_bisect.sort() if bisect_left(test_list_bisect, 4)!=bisect(test_list_bisect, 4): print ('Element Exists') else: print('Element doesnt exist')>

산출:

Checking if 4 exists in list ( using set() + in) :  Element Exists Checking if 4 exists in list ( using sort() + bisect_left() ) :  Element Exists>

find() 메소드를 사용하여 목록에 요소가 있는지 확인하십시오.

주어진 파이썬 코드는 숫자 15가 목록에 있는지 확인합니다.test_list>. 목록의 요소를 문자열로 변환하고 하이픈으로 연결합니다. 그런 다음 find()>방법 결과 문자열에 하위 문자열 15가 존재하는지 확인합니다. 15가 발견되면 Yes, 15가 목록에 존재합니다가 인쇄됩니다. 그렇지 않으면 No, 15가 목록에 존재하지 않습니다.가 인쇄됩니다.

파이썬3
# Initializing list test_list = [10, 15, 20, 7, 46, 2808] print('Checking if 15 exists in list') x=list(map(str,test_list)) y='-'.join(x) if y.find('15') !=-1: print('Yes, 15 exists in list') else: print('No, 15 does not exists in list')>

산출
Checking if 15 exists in list Yes, 15 exists in list>

Counter() 함수를 사용하여 목록에 요소가 있는지 확인하십시오.

제공된 Python 코드는 Counter> 의 수업collections>각 요소의 빈도를 계산하는 모듈test_list>. 그런 다음 숫자 15의 빈도가 0보다 큰지 확인합니다. 빈도가 0이 아니면 목록에 15가 있음을 의미하고 코드는 Yes, 15가 목록에 있음을 인쇄합니다. 그렇지 않으면 No, 15가 목록에 존재하지 않습니다.가 인쇄됩니다. 그만큼Counter>클래스는 요소 발생을 효율적으로 계산하여 직접적인 존재 여부 확인을 허용합니다.

파이썬3
from collections import Counter test_list = [10, 15, 20, 7, 46, 2808] # Calculating frequencies frequency = Counter(test_list) # If the element has frequency greater than 0 # then it exists else it doesn't exist if(frequency[15]>0): print('예, 15가 목록에 존재합니다') else: print('아니요, 15가 목록에 존재하지 않습니다')>

산출
Yes, 15 exists in list>

다음과 같은 경우 찾기 Try-Exception 블록을 사용하는 목록에 요소가 존재합니다.

목록에 요소가 있는지 확인하는 또 다른 방법은 다음을 사용하는 것입니다. 색인() 방법. 이 메서드는 목록에서 해당 요소가 처음 나타나는 인덱스를 반환하거나 해당 요소가 목록에 없으면 ValueError를 발생시킵니다. 이 방법을 사용하려면 try-Exception 블록에서 index()에 대한 호출을 래핑하여 ValueError를 포착하고 이것이 발생하면 False를 반환할 수 있습니다.

파이썬3
def element_exists(lst, element): # Try to get the index of the element in the list try: lst.index(element) # If the element is found, return True return True # If a ValueError is raised, the element is not in the list except ValueError: # Return False in this case return False #Test the function test_list = [1, 6, 3, 5, 3, 4] print(element_exists(test_list, 3)) # prints True print(element_exists(test_list, 7)) # prints False #This code is contributed by Edula Vinay Kumar Reddy>

산출
True False>

시간 복잡도: O(n), 여기서 n은 목록의 길이입니다. index() 메서드는 목록을 반복하여 요소를 찾으므로 시간 복잡도는 선형입니다.
공간 복잡도 : O(1). 이 접근 방식에는 추가 공간이 필요하지 않습니다.

filter() 함수를 사용하여 목록에 요소가 있는지 확인합니다.

단계별 접근 방식

  • my_list 목록을 정의하고 element_to_check를 설정합니다.
  • filter() 함수를 사용하여 element_to_check와 동일한 요소를 포함하는 반복자(filtered_elements)를 만듭니다.
  • 반복자filtered_elements를 목록으로 변환합니다.
  • filter() 함수가 반복자를 반환하므로 이 단계가 필요합니다. 이제 목록에는 element_to_check와 동일한 요소가 포함됩니다.
  • Filtered_list 목록이 비어 있지 않은지 확인하세요.
  • 목록이 비어 있지 않으면 해당 요소가 원래 목록에 존재한다는 의미입니다.
파이썬
my_list = [1, 2, 3, 4, 5] element_to_check = 3 # Use filter to create an iterator of elements equal to the target element filtered_elements = filter(lambda x: x == element_to_check, my_list) # Convert the iterator to a list and check if it's not empty if list(filtered_elements): print('Element exists in the list') else: print('Element does not exist in the list')>

산출
Element exists in the list>

시간 복잡도: O(n)

보조 공간 복잡도: O(n)