Em Python, há alguma diferença entre criar um objeto gerador por meio de uma expressão geradora e usar a instrução yield ?
Usando o rendimento :
def Generator(x, y):
for i in xrange(x):
for j in xrange(y):
yield(i, j)
Usando expressão geradora :
def Generator(x, y):
return ((i, j) for i in xrange(x) for j in xrange(y))
Ambas as funções retornam objetos geradores, que produzem tuplas, por exemplo (0,0), (0,1) etc.
Alguma vantagem de um ou de outro? Pensamentos?
Obrigado a todos! Há muitas informações úteis e referências adicionais nessas respostas!