Ho una funzione di generatore e voglio ottenere i primi dieci elementi da esso; il mio primo tentativo è stato:Ottenere un sottoinsieme di un generatore
my_generator()[:10]
Questo non funziona perché i generatori non sono abbonati, come mi dice l'errore. In questo momento ho lavorato intorno a quella con:
list(my_generator())[:10]
Questo funziona poiché converte il generatore ad una lista; tuttavia, è inefficiente e sconfigge il punto di avere un generatore. Esiste un equivalente pitonico incorporato di [:10]
per i generatori?
effettivamente utilizzare: itertools.islice (mygenerator(), 10) – Martlark
@martlark: uhm, no Ned aveva versione corretta. – SilentGhost
@SilentGhost bene, quando ho provato ho ottenuto questo errore: import itertools def sumUp(): x = 20; z = 0 for y in range (x + 1): z + = 1 resa z per z a itertools.islice (sumUp, 5): stampa z Traceback (chiamata più recente scorso): file "C: \ Data \ \ code Febrl \ src \ z.py", linea 9, in per z a itertools.islice (sumUp, 5): TypeError: 'funzione' oggetto non è iterabile pitone 2.6 –
Martlark