Рассмотрим функцию python:
def testSetsFromStrings(tt):
x1= [lambda x: x.split(' ') for x in tt]
return x1
Давайте вызовем его со следующим:
tt = ['id0 id1 id2 id3 id4',
'id10 id11 id12 id13 id14',
'id20 id21 id22 id23 id24',
' id30 id31 id32 id33 id34',
'id50 id51 id52 id53 id54']
testSetFromStrings(tt)
После линии x1= ..
была установлена точка останова, и мы можем увидеть x1
=
<class 'list'>: [<function testSetsFromStrings.<locals>.<listcomp>.
<lambda> at 0x11cee5730>, <function testSetsFromStrings.<locals>.<listcomp>.
<lambda> at 0x11cee5840>, <function testSetsFromStrings.<locals>.<listcomp>.
<lambda> at 0x11cee58c8>, <function testSetsFromStrings.<locals>.<listcomp>.
<lambda> at 0x11cee5950>, <function testSetsFromStrings.<locals>.<listcomp>.
<lambda> at 0x11cee59d8>]
Я в недоумении относительно того, как заставить lambda
быть оцененным с нетерпением . Что тут можно сделать?
** Обновление **
Показанная логика является упрощением многошаговой функции, которая необходима: чтобы сосредоточиться только на механике вызова лямбды. Замена lambda
на прямой вызов split
не отвечает реальной необходимости.