Home >Backend Development >Python Tutorial >How Can You Efficiently Determine Sublist Presence Within a Larger List in Python?

How Can You Efficiently Determine Sublist Presence Within a Larger List in Python?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-26 22:33:31466browse

How Can You Efficiently Determine Sublist Presence Within a Larger List in Python?

Searching Lists for Sublist Presence in Python

Identifying the presence of a sublist within a larger list is a common programming task. Python offers a straightforward solution for this problem using a custom function.

Problem Formulation:

Given two lists, list1 and list2, determine if the elements of list2 exist as a contiguous sequence within list1. Consider the following test cases:

<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>

Implementation:

Python's functional programming capabilities allow for a concise solution using the any() function and list comprehensions:

<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>

This function takes two arguments: lst (the main list) and sublst (the sublist to be searched for). It calculates the length of sublst and uses a list comprehension to generate a sequence of index ranges within lst. For each range, it compares sublst to the corresponding elements in lst. If a match is found, any() returns True; otherwise, it returns False.

Example Usage:

In the provided test cases, sublistExists(list1, [1,1,1]) returns True and sublistExists(list2, [1,1,1]) returns False, as expected.

Note:

The any() function optimizes the search by terminating on the first match. The function has a time complexity of O(m*n), where m is the length of lst and n is the length of sublst.

The above is the detailed content of How Can You Efficiently Determine Sublist Presence Within a Larger List in Python?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn