Умножить каждый элемент списка в списке Python
Как в ОДНУ строку умножить все элементы списка/кортежа на х? Должно работать с кортежами если возможно.
x = 100
l = ([1, 4], [3, 1])
#одна строка кода
print(l)
Вывод: ([100,400],[300,100])
Ответы (2 шт):
Автор решения: magistar
→ Ссылка
Как-то так:
x = 100
l = ([1, 4], [3, 1])
new_l = tuple([list(map(lambda num: num * x, lst)) for lst in l])
print(new_l)
Что здесь происходит: генератор создает список, в котором каждый элемент - список из кортежа l, преобразованный с помощью функции map (каждый элемент умножается на x). Затем этот список преобразуется в кортеж.
С форматом кортеж-список можете сами поиграться, заменив tuple на list или наоборот в обоих случаях.
Автор решения: Alexey Trukhanov
→ Ссылка
Можно использовать списковое включение:
x = 100
lst = ([1, 4], [3, 1])
ready_lst = tuple([x * i for i in p] for p in lst)
print(ready_lst)
А вообще отлично использовать numpy, не надо беспокоится о размерности массива.
import numpy as np
x = 100
lst = ([1, 4], [3, 1])
np_lst = tuple((np.array(lst) * x).tolist())
print(np_lst)