Python | Multiplicación personalizada en lista de listas

A veces, cuando nos alimentan con la lista de listas, necesitamos multiplicar cada una de sus listas de elementos con un elemento particular alimentado por el orden en la otra lista. Este problema en particular es muy específico, pero su conocimiento puede ser útil en tales casos. Vamos a discutir ciertas formas en que esto se puede hacer.

Método #1: Usar bucles

Este es el método Naive y de fuerza bruta para realizar esta tarea particular en la que ejecutamos un bucle para obtener todos los elementos y sus componentes anidados y multiplicarlos en consecuencia.

# Python3 code to demonstrate
# Custom Multiplication in list of lists
# Using loops
  
# initializing list
test_list = [[5, 6, 8], [7, 4, 3], [8, 10, 12]]
  
# initializing multiply list 
mult_list = [10, 20, 30]
  
# printing original list
print("The original list : " + str(test_list))
  
# printing multiply list
print("The original multiply list : " + str(mult_list))
  
# using loops
# Custom Multiplication in list of lists
res = [[] for idx in range(len(test_list))]
for i in range(len(test_list)):
    for j in range(len(mult_list)):
        res[i] += [mult_list[i] * test_list[i][j]]
  
# print result
print("The list after multiply : " + str(res))
Producción :

The original list : [[5, 6, 8], [7, 4, 3], [8, 10, 12]]
The original multiply list : [10, 20, 30]
The list after multiply : [[50, 60, 80], [140, 80, 60], [240, 300, 360]]

Método #2: Usar la comprensión de listas +enumerate()

Este problema también se puede resolver de una manera más corta usando el poder de la enumerate función para obtener los índices y el valor del contenedor al mismo tiempo. Este es un enfoque de una sola línea para resolver este problema.

# Python3 code to demonstrate
# Custom Multiplication in list of lists
# Using list comprehension + enumerate()
  
# initializing list
test_list = [[5, 6, 8], [7, 4, 3], [8, 10, 12]]
  
# initializing multiply list 
mult_list = [10, 20, 30]
  
# printing original list
print("The original list : " + str(test_list))
  
# printing multiply list
print("The original multiply list : " + str(mult_list))
  
# using list comprehension + enumerate()
# Custom Multiplication in list of lists
res = [[mult_list[i] * j for j in sub] 
       for i, sub in enumerate(test_list)]
  
# print result
print("The list after multiply : " + str(res))
Producción :

The original list : [[5, 6, 8], [7, 4, 3], [8, 10, 12]]
The original multiply list : [10, 20, 30]
The list after multiply : [[50, 60, 80], [140, 80, 60], [240, 300, 360]]

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 *