почему выходные данные отличаются
Случай 1: адрес каждого объекта анонимной функции в разрешении списка одинаков
t = [id(lambda t: t * i) if i % 2 == 0 else id(lambda x: x ** i + 1) for i in range(4)]
print(t)
[140430836691560, 140430836691560, 140430836691560, 140430836691560]
Случай 2: Объект анонимной функции в разрешении списка удален, а адрес другой.
for i in [lambda t: t * i if i % 2 == 0 else lambda x: x ** i + 1 for i in range(4)]:
print(id(i), end=",")
140307163083368,140307163083640,140307163083504,140307163083776,