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