web-dev-qa-db-fra.com

Comment multiplier tous les entiers dans la liste

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]

40
Andre

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

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

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]
4
miradulo

Le moyen le plus simple pour moi est:

map((2).__mul__, [1, 2, 3])
3
blameless75
#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)
1

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]
1
ilya shusterman