Python: compruebe si hay una sublista en la lista

A veces, mientras trabajamos con listas de Python, podemos tener un problema en el que necesitamos verificar si una sublista en particular está contenida en una secuencia exacta en una lista. Esta tarea puede tener aplicación en muchos dominios, como la programación escolar y el desarrollo web. Analicemos ciertas formas en que se puede realizar esta tarea.
 

Entrada : lista_prueba = [5, 6, 3, 8, 2, 1, 7, 1], sublista = [8, 2, 3] 
Salida : Falso
Entrada : lista_prueba = [5, 6, 3, 8, 2, 3 , 7, 1], sublista = [8, 2, 3] 
Salida : Verdadero 
 

Método n.º 1: usar loop + list slicing 
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, realizamos la tarea de verificar la sublista mediante corte incremental utilizando la técnica de corte de lista.
 

Python3

# Python3 code to demonstrate working of
# Check for Sublist in List
# Using loop + list slicing
 
# initializing list
test_list = [5, 6, 3, 8, 2, 1, 7, 1]
 
# printing original list
print("The original list : " + str(test_list))
 
# initializing sublist
sublist = [8, 2, 1]
 
# Check for Sublist in List
# Using loop + list slicing
res = False
for idx in range(len(test_list) - len(sublist) + 1):
        if test_list[idx : idx + len(sublist)] == sublist:
            res = True
            break
         
# printing result
print("Is sublist present in list ? : " + str(res))
Producción : 

The original list : [5, 6, 3, 8, 2, 1, 7, 1]
Is sublist present in list ? : True

 

 
Método n.° 2: usar any() + división de lista + expresión generadora 
La combinación de las funciones anteriores se usa para resolver este problema. En esto, realizamos la tarea de verificar cualquier sublista que equivalga a la deseada usando any(), y el corte de lista se usa para cortar la lista incremental de la longitud deseada.
 

Python3

# Python3 code to demonstrate working of
# Check for Sublist in List
# Using any() + list slicing + generator expression
 
# initializing list
test_list = [5, 6, 3, 8, 2, 1, 7, 1]
 
# printing original list
print("The original list : " + str(test_list))
 
# initializing sublist
sublist = [8, 2, 1]
 
# Check for Sublist in List
# Using any() + list slicing + generator expression
res = any(test_list[idx : idx + len(sublist)] == sublist
        for idx in range(len(test_list) - len(sublist) + 1))
         
# printing result
print("Is sublist present in list ? : " + str(res))
Producción : 

The original list : [5, 6, 3, 8, 2, 1, 7, 1]
Is sublist present in list ? : True

 

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *