- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
# разбираюсь с питоном, может растолкуете почему так
>>> z = [lambda: i for i in [1,2,3]]
# почему вот такой результат?
>>> z[0](), z[1](), z[2]()
(3, 3, 3)
# каждый элемент списка - отдельная функция
>>> z[0] == z[1], z[0] is z[1]
(False, False)
# вот таким образом выходит правильно.
>>> z = [lambda: 1, lambda: 2, lambda:3]
>>> z[0](), z[1](), z[2]()
(1, 2, 3)
а во втором случае 3 отдельных лямбды и каждая возвращает своё
или так: