next(iterator [, default])
La función next devuelve el siguiente elemento del iterador incluido como primer argumento invocando su método __next__.
En el caso de que el iterador esté vacío se generará una excepción de tipo StopIteration salvo que se haya incluido un segundo argumento ("default"), en cuyo caso se devolverá como resultado de la función.
- iterator: Iterador del que extraer el siguiente elemento.
- default: Valor a devolver si no hay elementos en el iterador.
La función next devuelve un elemento del iterable indicado, sea del tipo que sea.
Si partimos del siguiente iterador creado a partir de una lista:
a = iter([2, 4, 6, 8])
...podemos extraer su primer valor ejecutando la función next y pasando el iterador como argumento:
next(a)
2
Cada ejecución de la función next devolverá el siguiente elemento:
next(a)
4
next(a)
6
next(a)
8
...hasta que el iterador no incluya más elementos, en cuyo caso se devuelve una excepción:
next(a)
---------------------------------------------------------------------------
StopIteration Traceback (most recent call last)
<ipython-input-6-15841f3f11d4> in <module>
----> 1 next(a)
StopIteration:
Si se incluye el segundo argumento, default, será el valor devuelto cuando el iterable no incluya ningún elemento. Por ejemplo, partimos del mismo iterador que en el ejemplo anterior:
a = iter([2, 4, 6, 8])
...y ejecutamos un bucle while leyendo el siguiente elemento hasta que éste sea None, valor por defecto incluido como segundo argumento en la función next:
result = ""
while result != None:
result = next(a, None)
print(result)
2
4
6
8
None