web-dev-qa-db-de.com

Wie man alle ganzen Zahlen in der Liste multipliziert

Hallo, ich möchte also die ganzen Zahlen in einer Liste multiplizieren.

Beispielsweise;

l = [1, 2, 3]
l = [1*2, 2*2, 3*2]

ausgabe:

l = [2, 4, 6]

Also suchte ich online und die meisten Antworten bezogen sich auf das Multiplizieren aller ganzen Zahlen miteinander, wie zum Beispiel:

[1 * 2 * 3]

40
Andre

Versuchen Sie ein Listenverständnis :

l = [x * 2 for x in l]

Dies geht durch l und multipliziert jedes Element mit zwei.

Natürlich gibt es mehr als eine Möglichkeit, dies zu tun. Wenn Sie in Lambda-Funktionen und map sind, können Sie sogar tun

l = map(lambda x: x * 2, l)

die Funktion anwenden lambda x: x * 2 zu jedem Element in l. Dies ist äquivalent zu:

def timesTwo(x):
    return x * 2

l = map(timesTwo, l)
66
APerson

Der pythonischste Weg wäre, ein Listenverständnis zu verwenden:

l = [2*x for x in l]

Wenn Sie dies für eine große Anzahl von Ganzzahlen tun müssen, verwenden Sie numpy Arrays:

l = numpy.array(l, dtype=int)*2

Eine letzte Alternative ist die Verwendung einer Karte

l = list(map(lambda x:2*x, l))
18
Joshua

Ein anderer funktionaler Ansatz, der vielleicht etwas einfacher zu betrachten ist als eine anonyme Funktion, wenn Sie diese Route wählen, ist die Verwendung von functools.partial, Um den Zwei-Parameter operator.mul Mit einem festen Vielfachen zu verwenden

>>> from functools import partial
>>> from operator import mul
>>> double = partial(mul, 2)
>>> list(map(double, [1, 2, 3]))
[2, 4, 6]
4
miradulo

Der einfachste Weg für mich ist:

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)

mit 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