zlodiak, да, здравый смысл. Ваш код создаёт список абсолютно одинаковых функций, которые при вызове прибавляют 10 к переданному им в момент вызова значению:
d = [lambda n: n + 10 for n in range(3)]
print(d[0](32))
Это бессмысленно. Добиться вывода [10, 11, 12] можно было бы вызовом функций в момент их создания - [(lambda n: n + 10)(n) for n in range(3)] Но зачем?