Как создать понимание, в котором элементами являются лямбда-функции с одним аргументом?Python

Программы на Python
Anonymous
Как создать понимание, в котором элементами являются лямбда-функции с одним аргументом?

Сообщение Anonymous »

Я хочу развернуть итерацию с помощью функций e0, e1, e2, возвращающих 3 первых элемента итерации e. Я могу определить функцию с пониманием, но из-за проблемы с замыканием мне нужно добавить поддельный аргумент со значением по умолчанию, i=i:

Код: Выделить всё

e0, e1, e2 = [lambda e, i=i: e[i] for i in range(3)]
Это работает так, как ожидалось:

Код: Выделить всё

t = 'abc'
print(e0(t), e1(t), e2(t))

>>> a b c
Однако я не хочу добавлять возможность использования этого второго аргумента в вызове, например. Я не хочу разрешать этот вызов, который меняет поведение e0:

Код: Выделить всё

e0(t, 2)

>>> c
должен быть функцией только с одним аргументом. Как настроить понимание списка, чтобы оно соответствовало двум ограничениям: один аргумент, а также значение по умолчанию для i?

Вернуться в «Python»