Dada una lista, imprime todas las sublistas de una lista.
Ejemplos:
Input : list = [1, 2, 3] Output : [[], [1], [1, 2], [1, 2, 3], [2], [2, 3], [3]] Input : [1, 2, 3, 4] Output : [[], [1], [1, 2], [1, 2, 3], [1, 2, 3, 4], [2], [2, 3], [2, 3, 4], [3], [3, 4], [4]]
Enfoque #1:
El enfoque se ejecutará en dos bucles anidados hasta la longitud de la lista dada. El bucle exterior i atraviesa de 0 a la longitud de la lista y el bucle interior va de 0 a i. Necesita agregar 1 a la longitud porque el rango solo va de 0 a i-1. Para obtener el subarreglo, podemos usar el corte para obtener el subarreglo.
Paso 1: ejecuta un ciclo hasta la longitud + 1 de la lista dada.
Paso 2: ejecuta otro ciclo de 0 a i.
Paso 3: corte el subarreglo de j a i.
Paso 4: añádelo a otra lista para almacenarlo
Paso 5: imprímelo al final
A continuación se muestra la implementación de Python del enfoque anterior:
Python
# Python program to print all # sublist from a given list # function to generate all the sub lists def sub_lists (l): lists = [[]] for i in range(len(l) + 1): for j in range(i): lists.append(l[j: i]) return lists # driver code l1 = [1, 2, 3] print(sub_lists(l1))
Producción:
[[], [1], [2], [1, 2], [3], [2, 3], [1, 2, 3]]
Enfoque #2:
El enfoque utilizará la función de bucle y combinaciones. For loop se usa para iterar hasta la longitud de la lista, lo que es útil para generar una sublista de variable i -ésima longitud. Con cada iteración, la función de combinación genera la posible combinación de lista con i -ésima longitud.
Python3
# Python program to print all # sublist from a given list from itertools import combinations # function to generate all the sub lists def sub_lists (l): # initializing empty list comb = [] #Iterating till length of list for i in range(len(l)+1): # Generating sub list comb += [list(j) for j in combinations([1, 2, 3], i)] # Returning list return comb # driver code #Initial list l1 = [1, 2, 3] #Print initial list print("Initial list is : " + str(l1)) # Calling function to generate all sub lists print("All sub list is : "+ str(sub_lists(l1)))
Producción:
Initial list is : [1, 2, 3] All sub list is : [[], [1], [2], [3], [1, 2], [1, 3], [2, 3], [1, 2, 3]]