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