Python에서 하위 목록 존재 감지
현재 과제는 더 큰 목록 내에 하위 목록이 있는지 확인하는 함수를 고안하는 것입니다. 두 개의 목록(하나는 더 큰 목록(list1)이고 다른 하나는 잠재적인 하위 목록(list2))이 주어지면 함수는 list2가 실제로 list1의 하위 목록인지 확인해야 합니다.
함수 구현
Python은 이러한 목적으로 활용할 수 있는 any()라는 다목적 함수를 제공합니다. 다음 코드 조각은 any()를 사용하는 함수를 구성하는 방법을 보여줍니다.
<code class="python">def sublist_exists(lst, sublst): n = len(sublst) return any((sublst == lst[i:i+n]) for i in range(len(lst)-n+1))</code>
이 함수는 해당 요소를 하나씩 반복하여 더 큰 목록(lst)을 꼼꼼하게 스캔합니다. 인덱스 i의 각 요소에 대해 길이 n의 연속 하위 목록을 추출하고 이를 잠재적 하위 목록(sublst)과 비교합니다. 일치하는 항목이 감지되면 함수는 즉시 True를 반환하여 하위 목록이 있음을 나타냅니다. 이 프로세스는 일치 항목을 찾거나 더 큰 목록 전체가 소진될 때까지 계속되며, 이 경우 함수는 False를 반환합니다.
성능 고려 사항
참고하는 것이 중요합니다. 이 함수의 시간 복잡도는 O(m*n)입니다. 여기서 m은 더 큰 목록의 길이이고 n은 잠재적인 하위 목록의 길이입니다. 각 반복마다 함수는 하위 목록 비교 연산을 수행하며 반복 횟수는 m과 n 더하기 1의 차이로 제한됩니다.
사용 예
해보자 제공된 예제를 사용하여 sublist_exists 함수의 사용법을 보여줍니다.
<code class="python">>>> sublist_exists([1,0,1,1,1,0,0], [1,1,1]) True >>> sublist_exists([1,0,1,0,1,0,1], [1,1,1]) False</code>
첫 번째 예제에서 [1,1,1]은 실제로 더 큰 목록의 하위 목록이므로 함수는 True를 반환합니다. 두 번째 예에서는 [1,1,1]이 더 큰 목록에 표시되지 않으므로 함수는 False를 반환합니다.
위 내용은 Python에 하위 목록이 있는지 효율적으로 확인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!