Как умножить все числа внутри списка [дубликат]

этот вопрос уже есть ответ здесь:

Привет, поэтому я хочу умножить целые числа внутри списка.

например:

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

выход:

l = [2, 4, 6]

поэтому я искал в интернете и большую часть ответы касались умножения всех целых чисел друг с другом, таких как:

[1*2*3]

6 ответов


попробовать понимание:

l = [x * 2 for x in l]

это проходит через l, умножив каждый элемент на два.

конечно, есть несколько способов сделать это. Если вы в лямбда-функции и map, вы даже можете сделать

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

чтобы применить функцию lambda x: x * 2 для каждого элемента l. Это эквивалентно:

def timesTwo(x):
    return x * 2

l = map(timesTwo, l)

наиболее подходящие для Python способ-использовать список понимание:

l = [2*x for x in l]

Если вам нужно сделать это для большого количества чисел, использовать numpy массивы:

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

последней альтернативой является использование map

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

другой функциональный подход, который, возможно, немного легче смотреть, чем анонимная функция, если вы идете по этому маршруту, использует functools.partial использовать два параметра operator.mul с фиксированным нескольких

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

самый простой способ для меня-это:

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)

использование 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]