Функциональное программирование в Python
Столкнулся с проблемой решения задачи на одном из курсов. При составлении данного кода в этой строке
lambda z: tuple(z)
среда выдаёт ошибку
Lambda may not be necessary (unnecessary-lambda)
Полный код представлен ниже. Не могу понять, как можно оптимизировать лямбду.
import itertools
import functools
print(*(tuple([[[0]]]) + tuple(
*map(lambda data: filter(lambda x: tuple(x[0]) == x[1],
map(lambda variant: (
filter(lambda bet: ((variant.index(bet[0]) >= variant.index(bet[1])) ^
(variant.index(bet[2]) >= variant.index(bet[3]))),
data[1]), data[1], variant + data[2]), data[0])),
map(lambda x: (itertools.permutations(
set(functools.reduce(lambda x, y: x + y, x[1]))), x[1],
tuple(set(range(1, x[0] + 1)) - set(functools.reduce(
lambda x, y: x + y, x[1])))),
map(lambda dataEntered: (next(dataEntered),
tuple(set(map(
lambda z: tuple(z),
map(lambda x: map(int, input().split()),
range(next(dataEntered))))))), [map(int, input().split())])
))
))[-1][-1])
Входные данные Ввод
3 2
2 1 2 3
1 2 3 2
Вывод
3 2 1
Ответы (1 шт):
Автор решения: Stanislav Volodarskiy
→ Ссылка
Выражение lambda z: tuple(z) полностью взаимозаменяемо с tuple. Это верно для любой функции f вместо tuple:
lambda x: f(x) <=> f
lambda *args: f(*args) <=> f
lambda *args, **kwargs: f(*args, **kwargs) <=> f