python 3.x - not - itertools.cycle().next()?
pairwise python (2)
En Python 3.x, los iteradores ya no tienen it.next()
. use next(it)
, que también funciona en Python 2.6 o superior. Internamente, esto lo llamará it.next()
en Python 2.xy it.__next__()
en Python 3.x.
Bueno, estaba usando el itertools.cycle().next()
con Python 2.6.6, pero ahora que actualicé a 3.2 noté que el objeto itertools.cycle()
no tiene el método next()
.
Lo usé para ciclar una cadena en el método spin()
de una clase Spinner
. Entonces, si hacemos un ciclo de la tupla (''|'', ''/'', ''-'', ''//', ''|'', ''/'', ''-'')
, se imprimirá: |
, /
, -
, /
, |
, /
, -
, |
, /
y así sucesivamente ...
He buscado las notas de lanzamiento de Python 3.0, 3.1 y 3.2 y no he notado ningún cambio en esto. Cuando esto ha cambiado? ¿Hay alguna alternativa simple para lograr la misma funcionalidad que antes?
Gracias de antemano.
iter.next()
fue eliminado en Python 3. Use next(iter)
lugar. Por lo tanto, en su ejemplo, cambie itertools.cycle().next()
a next(itertools.cycle())
Aquí hay un buen ejemplo junto con varias otras porting a pitón 3 consejos. También compara varios otros modismos next()
en python 2.x vs python 3.x