J'ai une fonction de générateur et je veux en obtenir les dix premiers éléments; ma première tentative était:Obtenir un sous-ensemble d'un générateur
my_generator()[:10]
Cela ne fonctionne pas parce que les générateurs ne sont pas indicables, comme l'erreur me le dit. En ce moment j'ai travaillé autour de cela avec:
list(my_generator())[:10]
Cela fonctionne depuis qu'il convertit le générateur en liste; Cependant, il est inefficace et va à l'encontre de l'idée d'avoir un générateur. Existe-t-il un équivalent Pythonic intégré de [:10]
pour les générateurs?
utilisent réellement: itertools.islice (mygenerator(), 10) – Martlark
@martlark: Uhm, pas Ned avait la version correcte. – SilentGhost
@SilentGhost bien, quand je l'ai essayé j'ai eu cette erreur: importer itertools def sumUp(): x = 20; z = 0 pour y dans la plage (x + 1): z + = 1 rendement z pour z dans itertools.islice (sumUp, 5): impression z retraçage (appel le plus récent dernier): Fichier "C: \ Data Code \ \ Febrl \ src \ z.py", ligne 9, dans pour z dans itertools.islice (sumUp, 5): TypeError: l'objet 'de la fonction' est pas iterable python 2,6 –
Martlark