я видел this question, но я до сих пор не понимаю, почему такой простой пример не работает:список лямбды в питоне
mylist = ["alice", "bob", "greta"]
funcdict = dict(((y, lambda x: x==str(y)) for y in mylist))
funcdict['alice']("greta")
#True
funcdict['alice']("alice")
#False
funcdict['greta']("greta")
#True
Как это отличается от:
[(y, y) for y in mylist]
Почему y
не оценивается на каждом этапе итерации?
Почему вы ожидаете оценки 'y': это временная переменная внутри понимания списка. – Evert