[pyar] Cómo obtenes N elemento de un generador?

Daniel Moisset dmoisset en machinalis.com
Lun Ago 23 18:32:34 ART 2010


2010/8/23 Juanjo Conti <jjconti en gmail.com>
>
> Les dejo mi intento infructífero; cómo se hace?
>
> >>> def a():
> ...     for x in range(10):
> ...             yield x
> ...
> >>> a()
> <generator object a at 0xb76c89b4>
> >>> c = a()
> >>> c[0:4]
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
> TypeError: 'generator' object is unsubscriptable
> >>> c.next()
> 0
> >>> c.next()
> 1
> >>> c.next()
> 2

Yo lo escribiría:

>>> def a():
...     for x in range(10):
...         yield x
...
>>> c = a()
>>> [c.next() for i in xrange(4)]
[0, 1, 2, 3]

No es super legible, pero me parece mas legible/simple que un while y
mmuchas de las con itertools (bueno, islice queda bastante bien)



More information about the pyar mailing list