Как умножить все целые числа внутри списка
Здравствуйте, поэтому я хочу умножить целые числа внутри списка.
Например:
l = [1, 2, 3]
l = [1*2, 2*2, 3*2]
выход:
l = [2, 4, 6]
Итак, я искал онлайн, и большинство ответов касалось умножения всех целых чисел друг на друга, таких как:
[1 * 2 * 3]
Ответы
Ответ 1
Попробуйте понимание списка:
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)
Ответ 2
Самый пифонический способ - использовать понимание списка:
l = [2*x for x in l]
Если вам нужно сделать это для большого числа целых чисел, используйте numpy
массивы:
l = numpy.array(l, dtype=int)*2
Конечной альтернативой является использование карты
l = list(map(lambda x:2*x, l))
Ответ 3
Другим функциональным подходом, который может быть немного легче смотреть, чем анонимная функция, если вы идете по этому маршруту, используйте 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]
Ответ 4
Самый простой способ для меня:
map((2).__mul__, [1, 2, 3])
Ответ 5
#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)
Ответ 6
с помощью 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]