Programa de Python para encontrar todas las combinaciones en la lista con la condición dada

Dada una lista con algunos elementos siendo una lista de elementos opcionales. La tarea es encontrar todas las combinaciones posibles de todas las opciones.

Ejemplos:

Entrada : test_list = [“geekforgeeks”, [5, 4, 3], “es”, [“mejor”, “bueno”, “mejor”]], K = 3 
Salida : [[‘geekforgeeks’, 5, ‘ es’, ‘mejor’], [‘geekforgeeks’, 4, ‘es’, ‘bueno’], [‘geekforgeeks’, 3, ‘es’, ‘mejor’]] 
Explicación : elementos internos seleccionados y emparejados con índices similares . 5 -> “mejor”.

Entrada : test_list = [“geekforgeeks”, [5, 4], “es”, [“mejor”, “bueno”]], K = 2 
Salida : [[‘geekforgeeks’, 5, ‘es’, ‘mejor’ ], [‘geekforgeeks’, 4, ‘is’, ‘good’]] 
Explicación : elementos internos seleccionados y emparejados con índices similares. 5 -> “mejor”. 
 

Método: usando un bucle

En esto, usamos un bucle anidado para obtener combinaciones sabias de índice de cada lista de opciones anidadas, y luego el bucle externo se usa para obtener valores predeterminados en todas las combinaciones.

Python3

# Python3 code to demonstrate working of 
# Optional Elements Combinations
# Using loop
  
# initializing list
test_list = ["geekforgeeks", [5, 4, 3, 4], "is", 
             ["best", "good", "better", "average"]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing size of inner Optional list 
K = 4
  
res = []
cnt = 0
while cnt <= K - 1:
    temp = []
      
    # inner elements selections
    for idx in test_list:
          
        # checks for type of Elements
        if not isinstance(idx, list):
            temp.append(idx)
        else:
            temp.append(idx[cnt])
    cnt += 1
    res.append(temp)
  
# printing result 
print("All index Combinations : " + str(res))

Producción:

La lista original es: [‘geekforgeeks’, [5, 4, 3, 4], ‘es’, [‘mejor’, ‘bueno’, ‘mejor’, ‘promedio’]]

Todas las combinaciones de índices: [[‘geekforgeeks’, 5, ‘is’, ‘best’], [‘geekforgeeks’, 4, ‘is’, ‘good’], [‘geekforgeeks’, 3, ‘is’, ‘better ‘], [‘geekforgeeks’, 4, ‘es’, ‘promedio’]]

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 *