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

Patricia Arquette
Release: 2024-10-26 22:33:31
Original
395 people have browsed it

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>
Copy after login

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>
Copy after login

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!

source:php.cn
Statement of this Website
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
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!