Как умножить все числа внутри списка [дубликат]
этот вопрос уже есть ответ здесь:
Привет, поэтому я хочу умножить целые числа внутри списка.
например:
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]
#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]