Bonjour, je veux donc multiplier les entiers dans une liste.
Par exemple;
l = [1, 2, 3]
l = [1*2, 2*2, 3*2]
sortie:
l = [2, 4, 6]
Donc, je cherchais en ligne et la plupart des réponses concernaient la multiplication de tous les nombres entiers les uns avec les autres, par exemple:
[1 * 2 * 3]
Essayez un compréhension de la liste :
l = [x * 2 for x in l]
Cela passe par l
, en multipliant chaque élément par deux.
Bien sûr, il y a plus d'une façon de le faire. Si vous êtes dans fonctions lambda et map
, vous pouvez même faire
l = map(lambda x: x * 2, l)
appliquer la fonction lambda x: x * 2
à chaque élément de l
. Ceci est équivalent à:
def timesTwo(x):
return x * 2
l = map(timesTwo, l)
La manière la plus pythonique serait d’utiliser une liste de compréhension:
l = [2*x for x in l]
Si vous avez besoin de faire cela pour un grand nombre d’entiers, utilisez numpy
tableaux:
l = numpy.array(l, dtype=int)*2
Une dernière alternative est d'utiliser la carte
l = list(map(lambda x:2*x, l))
Une autre approche fonctionnelle qui est peut-être un peu plus facile à regarder qu'une fonction anonyme si vous utilisez cet itinéraire utilise functools.partial
pour utiliser les deux paramètres operator.mul
avec un multiple fixe
>>> from functools import partial
>>> from operator import mul
>>> double = partial(mul, 2)
>>> list(map(double, [1, 2, 3]))
[2, 4, 6]
Le moyen le plus simple pour moi est:
map((2).__mul__, [1, 2, 3])
#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)
en utilisant 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]