python - soporta - optimizar consultas mysql explain
Cómo multiplicar todos los enteros dentro de la lista (6)
Hola, así que quiero multiplicar los enteros dentro de una lista.
Por ejemplo;
l = [1, 2, 3]
l = [1*2, 2*2, 3*2]
salida:
l = [2, 4, 6]
Así que estaba buscando en línea y la mayoría de las respuestas se referían a multiplicar todos los enteros entre sí, tales como:
[1 * 2 * 3]
La forma más pitónica sería utilizar una lista de comprensión:
l = [2*x for x in l]
Si necesita hacer esto para una gran cantidad de enteros, use matrices
numpy
:
l = numpy.array(l, dtype=int)*2
Una alternativa final es usar el mapa
l = list(map(lambda x:2*x, l))
La forma más simple para mí es:
map((2).__mul__, [1, 2, 3])
Otro enfoque funcional que es quizás un poco más fácil de ver que una función anónima si sigue esa ruta es usar
functools.partial
para utilizar el
operator.mul
dos parámetros.mul con un múltiplo fijo
>>> from functools import partial
>>> from operator import mul
>>> double = partial(mul, 2)
>>> list(map(double, [1, 2, 3]))
[2, 4, 6]
Prueba una lista de comprensión :
l = [x * 2 for x in l]
Esto pasa por
l
, multiplicando cada elemento por dos.
Por supuesto, hay más de una forma de hacerlo.
Si te
gustan las funciones lambda
y el
map
, incluso puedes hacer
l = map(lambda x: x * 2, l)
para aplicar la función
lambda x: x * 2
a cada elemento en
l
.
Esto es equivalente a:
def timesTwo(x):
return x * 2
l = map(timesTwo, l)
usando numpy:
In [1]: import numpy as np
In [2]: nums = np.array([1,2,3])*2
In [3]: nums.tolist()
Out[4]: [2, 4, 6]
#multiplying each element in the list and adding it into an empty list
original = [1, 2, 3]
results = []
for num in original:
results.append(num*2)# multiply each iterative number by 2 and add it to the empty list.
print(results)