Python에서 목록에 하위 목록 존재 검색
더 큰 목록 내에서 하위 목록이 있는지 식별하는 것은 일반적인 프로그래밍 작업입니다. Python은 사용자 정의 함수를 사용하여 이 문제에 대한 간단한 솔루션을 제공합니다.
문제 공식화:
두 개의 목록 list1과 list2가 주어지면 list2의 요소가 다음과 같이 존재하는지 확인합니다. list1 내의 연속 시퀀스. 다음 테스트 사례를 고려하십시오.
<code class="python">list1 = [1,0,1,1,1,0,0] list2 = [1,0,1,0,1,0,1] # Should return True sublistExists(list1, [1,1,1]) # Should return False sublistExists(list2, [1,1,1])</code>
구현:
Python의 함수형 프로그래밍 기능은 any() 함수와 목록 이해를 사용하여 간결한 솔루션을 허용합니다.
<code class="python">def contains_sublist(lst, sublst): n = len(sublst) return any((sublst == lst[i:i+n]) for i in range(len(lst)-n+1))</code>
이 함수는 lst(메인 목록)와 sublst(검색할 하위 목록)라는 두 가지 인수를 사용합니다. sublst의 길이를 계산하고 목록 이해를 사용하여 lst 내의 인덱스 범위 시퀀스를 생성합니다. 각 범위에 대해 sublst를 lst의 해당 요소와 비교합니다. 일치하는 항목이 발견되면 any()는 True를 반환합니다. 그렇지 않으면 False를 반환합니다.
사용 예:
제공된 테스트 사례에서 sublistExists(list1, [1,1,1])는 True를 반환하고 sublistExists( list2, [1,1,1])은 예상대로 False를 반환합니다.
참고:
any() 함수는 첫 번째 일치 항목을 종료하여 검색을 최적화합니다. . 이 함수의 시간 복잡도는 O(m*n)입니다. 여기서 m은 lst의 길이이고 n은 sublst의 길이입니다.
위 내용은 Python의 더 큰 목록 내에서 하위 목록의 존재를 어떻게 효율적으로 확인할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!