Home
» Power BI
»
Cómo multiplicar listas en Python: 7 formas rápidas
Cómo multiplicar listas en Python: 7 formas rápidas
Multiplicar listas en Python es una operación común cuando se realizan cálculos matemáticos o se resuelven problemas en la manipulación de datos. Hay varias formas de lograr esta tarea, según sus requisitos y las bibliotecas que tenga disponibles.
Para multiplicar listas en Python, puede usar bucles for, comprensión de listas, funciones zip y map, o el módulo de funciones integrado. También puede usar funciones de una biblioteca Python externa como NumPy.
Este artículo le mostrará muchas formas diferentes de multiplicar listas, cada una con un ejemplo de código y resultados explicados.
2 tipos de multiplicación de listas numéricas en Python
Antes de sumergirnos en los métodos específicos, debe comprender el tipo de multiplicación de listas que logran.
Python tiene varios conceptos diferentes que se encuentran bajo el término amplio de multiplicación de listas. Eso incluye replicar listas o lograr el producto cartesiano de elementos dentro de una lista.
En cambio, este artículo se centra en dos tipos de multiplicación aritmética de elementos dentro de una lista:
Multiplicación por valor
Multiplicación por elementos
Echemos un vistazo rápido a estos dos conceptos.
1. Multiplicación por valor
Cuando tenga una lista de números enteros, es posible que desee multiplicar cada elemento por un valor específico. Por ejemplo, tienes una lista [1, 2, 3] y quieres multiplicar cada elemento por el valor 3.
Podría intentar (incorrectamente) usar el operador de multiplicación como en este fragmento de código:
list1 = [1, 2, 3]
result = list1 * 3
Te sorprenderá que el resultado sea [1, 2, 3, 1, 2, 3, 1, 2, 3]. Esto se conoce como replicación de listas .
2. Multiplicación de listas por elementos
Suponga que tiene dos listas: [1, 2, 3] y [4, 5, 6]
Desea multiplicar los elementos en el mismo índice dentro de la lista para producir [4, 10, 18] como resultado.
Si intenta multiplicar dos listas de Python usando el operador '*', obtendrá un error:
TypeError: no se puede multiplicar la secuencia por no int del tipo 'lista'
Esto se debe a que el operador de multiplicación no está diseñado para funcionar con listas de la forma en que lo hace con números enteros o flotantes. En cambio, multiplicar listas requiere una operación conocida como multiplicación por elementos.
La multiplicación por elementos empareja los elementos correspondientes de dos listas y los multiplica, formando una nueva lista.
Ahora que entiendes estos dos conceptos. trabajemos a través de una variedad de técnicas para lograr los resultados correctos.
Cómo usar un bucle For para varios elementos de lista en Python
Suponga que desea multiplicar los elementos de la lista por un valor. Para este enfoque, puede iterar a través de los elementos con un bucle for y multiplicar cada uno por un segundo valor.
He aquí un ejemplo con una lista. La variable de resultado contiene la lista de salida.
list1 = [1, 2, 3, 4]
factor = 3
result = []
for element in list1:
result.append(element * factor)
En este caso, la lista de resultados será [3, 6, 9, 12].
Cómo usar la comprensión de listas para la multiplicación
Las comprensiones de lista proporcionan una forma concisa de realizar el tipo numérico de multiplicaciones de lista. Obtiene el mismo resultado que usando un bucle for , pero con una sintaxis más compacta.
Aquí está el ejemplo anterior usando la comprensión de listas:
list1 = [1, 2, 3, 4]
factor = 3
result = [element * factor for element in list1]
Este código da como resultado el mismo resultado que antes: [3, 6, 9, 12].
Cómo usar la función Zip para la multiplicación por elementos
Si tiene dos listas de números enteros, es posible que desee multiplicar las listas por elementos. Esto significa que multiplicas el primer elemento de la primera lista por el primer elemento de la segunda lista y así sucesivamente con los elementos en la misma posición.
La función zip() puede lograr esto cuando la combina con la comprensión de listas.
La función combina los elementos de dos listas de entrada, permitiéndole recorrerlas en paralelo. Aquí hay un ejemplo usando listas del mismo tamaño:
list1 = [1, 2, 3, 4]
list2 = [2, 3, 4, 5]
result = [a * b for a, b in zip(list1, list2)]
En este caso, la variable resultado contendrá la lista resultante: [4, 10, 18].
Trabajar con tuplas y constructores
A veces, es posible que deba trabajar con listas que contengan tuplas en lugar de números enteros simples.
Para multiplicar dos listas de tuplas , puedes usar una combinación de:
función zip()
constructores de tuplas
lista de comprensiones
Aquí hay un ejemplo:
list1 = [(1, 2), (3, 4)]
list2 = [(5, 6), (7, 8)]
result = [tuple(a * b for a, b in zip(t1, t2)) for t1, t2 in zip(list1, list2)]
Este es el resultado: [(5, 12), (21, 32)].
Cómo usar una función Map y Lambda en Python
La función de mapa en Python es una forma conveniente de aplicar una función a cada elemento en un iterable como una lista.
Una función lambda en Python es una pequeña función anónima. Esto significa que es una función sin nombre.
Para multiplicar dos listas por elementos, puede combinar las funciones map y lambda:
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = list(map(lambda x, y: x * y, list1, list2))
La variable resultado contendrá las listas multiplicadas: [4, 10, 18].
Cómo usar el módulo de operador en Python
El módulo de operador proporciona una gran cantidad de funciones útiles para trabajar con diferentes tipos y estructuras de datos.
La función operator.mul() se puede usar para multiplicar listas de números enteros cuando se combina con la función de mapa.
En este ejemplo, importa el módulo de operador y usa la función mul() junto con la función map() integrada de Python para multiplicar cada elemento de las dos listas.
La variable resultado contendrá las listas multiplicadas: [4, 10, 18].
Biblioteca NumPy: las funciones de matriz y multiplicación
La biblioteca NumPy es una poderosa biblioteca externa en Python, ampliamente utilizada para el cálculo numérico y el trabajo con matrices. Esta biblioteca es especialmente eficiente cuando se trata de arreglos grandes o arreglos multidimensionales.
Para usar NumPy puedes instalarlo usando pip:
pip install numpy
Para realizar la multiplicación por elementos en dos listas usando NumPy, siga estos pasos generales:
Convierta cada lista en una matriz NumPy usando numpy.array() .
Realice la multiplicación usando la función de multiplicación NumPy.
Opcionalmente, vuelva a convertir el resultado en una lista de Python usando el método tolist()
Esto devolverá el mismo resultado que en los ejemplos anteriores: [4, 10, 18].
Cómo combinar Functools y NumPy en Python
La biblioteca de funciones contiene una función de reducción que aplica una función específica de forma acumulativa a los elementos de una lista, reduciendo la lista a un solo valor.
Para multiplicar dos listas usando la función reduce() , puede combinarla con la función de multiplicación de la biblioteca NumPy.
Aquí hay un ejemplo:
from functools import reduce
import numpy as np
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = reduce(np.multiply, [list1, list2])
Este código importa las bibliotecas necesarias y usa la función reduce() junto con numpy.multiply() para realizar la multiplicación por elementos de las dos listas.
Trabajar con listas y otras estructuras de datos en Python
La mayoría de los aspectos del análisis de datos requieren trabajar con listas, conjuntos y otras estructuras de datos. Por ejemplo, pondrá en práctica su conocimiento al manejar datos faltantes con interpolación.
Mira este video para conocer algunas técnicas avanzadas:
Pensamientos finales
Has aprendido varios métodos para multiplicar listas aritméticamente en Python. Algunos solo usan módulos y funciones integrados, mientras que otros se basan en bibliotecas de terceros.
La capacidad de realizar multiplicaciones por elementos abre la puerta a una gran variedad de aplicaciones. Desde el análisis de datos hasta el aprendizaje automático, estas operaciones son una parte esencial de muchos algoritmos y tareas computacionales.
Si bien este artículo se enfocó en la multiplicación, los conceptos que aprendiste también se extienden a otras operaciones. La suma, la resta y la división por elementos también se pueden lograr de la misma manera.
Recuerde, la mejor manera de solidificar estos conceptos es aplicándolos, así que adelante, encienda su entorno de Python y comience a experimentar. Ya sea que esté automatizando tareas, manipulando datos o creando software complejo, estas técnicas sin duda serán útiles.