Avaliação diferida com lambda em Python

Em um loop, estou tentando adiar a comparação dos dois valores () s de dois Nós para um momento posterior.

class Node():
    def __init__(self, v):
        self.v = v
    def value(self):
        return self.v

nodes = [Node(0), Node(1), Node(2), Node(3), Node(4), Node(2)]
results = []
for i in [0, 1, 2]:
    j = i + 3
    results.append(lambda: nodes[i].value() == nodes[j].value())

for result in results:
    print result

Os resultados são todos verdadeiros (porque i, j == 2,5 para todos os lambdas). Como posso adiar a execução do lambda até que seja realmente chamado, mas com as ligações de variável corretas? E as expressões no lambda não são necessariamente todas iguais ... há um monte de outras expressões mais envolvidas.

Obrigado por qualquer ajuda!

questionAnswers(3)

yourAnswerToTheQuestion