Умножить каждый элемент списка в списке 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)
→ Ссылка