Хорошие я нуждаюсь в том, чтобы сделать как вид takewhile (), но с функцией лямбда Вещь - что и достигнутый это:
tomar_mientras = lambda l, condicion: [] if l == [] else [l[0]] + tomar_mientras(l[1:],condicion) if l[0] == condicion else []
Но просвет это не функционирует, очевидно есть вещи, которые убегают от меня, и сколько бы я не пробую изменять вещи не функционирует
я нуждаюсь например в том, что, если я происхожу с Вами
tomar_mientras([1,2,3,4,5], lambda x: x < 5)
возвратите мне [1,2,3,4]
То, что ты ищешь, так это следующее:
tomar_mientras = lambda term, l: [] if list(l) == [] or not term(l[0]) else \
[l[0]] + tomar_mientras(term, l[1:])
takewhile estГЎ в коротком замыкании, ты это забыл. Ты можешь сравнивать функционирование обоих, они равны.