Я пытаюсь использовать лямбда-выражения в словарном понимании, как это:
d = {k: lambda v, k = k : v == True if not (i%2) else "Not True" for k in range(1,11)}
Однако, выходы немного странные:
{1: <function <dictcomp>.<lambda> at 0x7fe5b714f510>,
2: <function <dictcomp>.<lambda> at 0x7fe5b714f488>, (...)}
Если я сделаю это;
v = lambda k: True if not (k%2) else "Not True"
d_1 = {k : v(k) for k in range(1,11)}
производит (желаемый) вывод:
{1: 'Not True', 2: True, 3: 'Not True', 4: True, 5: 'Not True', 6: True, 7: 'Not True', 8: True, 9: 'Not True', 10: True}
если I print(v)
без (), вывод очень похож на предыдущие значения словаря:
<function <lambda> at 0x7fe5b7136e18>.
Я думаю, что мне не хватает вызова лямбда-функции, но это тоже не работает:
d = {k: lambda v, k = k : v(k) == True if not (i%2) else False for k in range(1,11)}
Как я могу сделать вызов лямбда-функции в понимании?