[Python] istruzione yield
paride_900 a libero.it
paride_900 a libero.it
Ven 18 Maggio 2012 13:19:11 CEST
Salve ragazzi
navigando un po in rete mi sono imbattuto in questo pezzo di codice Python:
def splitlist(lista,lunghezza):
i=0
while 1:
fine=i+lunghezza
if len(lista)<=i: return
yield lista[i:fine]
i=fine
print list(splitlist([1,2,3,4],2))
Vi spiego fin dove sono riuscito a capirlo io.
Si crea la funzione 'splitlist' con i parametri 'lista' e 'lunghezza'
Si crea la variabile 'i' e gli viene assegnato il valore zero.
Si crea un ciclo while 1, ovvero fino a che la condizione sarà 1.
Si crea la variabile 'fine' e gli vengono assegnati le variabili 'i' e
'lunghezza' da sommare, quindi a questo punto abbiamo la variabile 'fine' che
vale due.
Quindi si passa all'istruzione 'if' che verifica se gli elementi della lista
sono minori o uguali a 'i', cioè a zero. Se è vero che sono minori o uguali
ritornerà la lista vuota.
Dall'istruzione sotto in poi non riesco a capirci più nulla.
In particolare non ho capito il funzionamento dell'istruzione yield, da quel
che ho letto in rete si tratta di un generatore o una cosa del genere ma non ho
capito bene come agisce.
GRAZIE
RESTO IN ATTESA DI VOSTRI AIUTI
Maggiori informazioni sulla lista
Python