Método Python next()

La función Python next() devuelve el siguiente elemento de un iterador. En este artículo, cubriremos la sintaxis de next(), los parámetros de next() y las devoluciones de next().

Sintaxis: siguiente (iter, stopdef)

Parámetros: 

  • iter: el iterador sobre el que se va a realizar la iteración.
  • stopdef: valor predeterminado que se imprimirá si llegamos al final del iterador.

Devoluciones: Devuelve el siguiente elemento de la lista, si no está presente, imprime el valor predeterminado. Si el valor predeterminado no está presente, genera el error StopIteration.

Ejemplo del método Python next()

Ejemplo 1: Demostración del funcionamiento de next() 

Aquí veremos el python next() en bucle.

Python3

# Python code to demonstrate
# working of next()
 
# initializing list
list1 = [1, 2, 3, 4, 5]
 
# converting list to iterator
list1 = iter(list1)
 
print("The contents of list are : ")
 
# printing using next()
# using default
while (1):
    val = next(list1, 'end')
    if val == 'end':
        print('list end')
        break
    else:
        print(val)

Producción:

The contents of list are : 
1
2
3
4
5
list end

Ejemplo 2: obtener el siguiente elemento del iterador

Python3

list1 = [1, 2, 3, 4, 5]
 
# converting list to iterator
list1 = iter(list1)
 
print(list1)
print(next(list1))
print(next(list1))
print(next(list1))

Producción:

<list_iterator object at 0x0000021D7C801D88>
1
2
3

Ejemplo 3: pasar el valor predeterminado a next()

Python3

list1 = [1, 2, 3, 4, 5]
 
# converting list to iterator
list1 = iter(list1)
 
print(list1)
print(next(list1, -1))
print(next(list1, -1))
print(next(list1, -1))
print(next(list1, -1))
print(next(list1, -1))
print(next(list1, -1))
print(next(list1, -1))

Producción:

<list_iterator object at 0x0000021D7AE08908>
1
2
3
4
5
-1
-1

Ejemplo 6: detener la iteración de Python next()

Python3

list1 = [1, 2, 3, 4, 5]
 
# converting list to iterator
list1 = iter(list1)
 
print(list1)
print(next(list1))
print(next(list1))
print(next(list1))
print(next(list1))
print(next(list1))
print(next(list1))

Producción:

<list_iterator object at 0x0000021D7ADF55C8>
1
2
3
4
5
---------------------------------------------------------------------------
StopIteration                             Traceback (most recent call last)
<ipython-input-17-02f0e1df3bbe> in <module>
    10 print(next(list1))
    11 print(next(list1))
---> 12 print(next(list1))

StopIteration: 

Al llamar fuera del rango del iterador, aumenta el error Stopiteration, para evitar este error, usaremos el valor predeterminado como argumento.

Ejemplo 5: Análisis de rendimiento 

Python3

# Python code to demonstrate
# next() vs for loop
import time
 
# initializing list
list1 = [1, 2, 3, 4, 5]
 
# keeping list2
list2 = list1
 
# converting list to iterator
list1 = iter(list1)
 
print("The contents of list are : ")
 
# printing using next()
# using default
start_next = time.time()
while (1):
    val = next(list1, 'end')
    if val == 'end':
        break
    else:
        print(val)
print("Time taken for next() is : " + str(time.time() - start_next))
 
# printing using for loop
start_for = time.time()
for i in list2:
    print(i)
print("Time taken for loop is : " + str(time.time() - start_for))

Producción: 

The contents of list are : 
1
2
3
4
5
Time taken for next() is : 5.96046447754e-06
1
2
3
4
5
Time taken for loop is : 1.90734863281e-06

Resultado: Python next in For loop es una mejor opción cuando se imprime el contenido de la lista que next().

Aplicaciones: next() es la función de utilidad para imprimir los componentes del contenedor de tipo iter. Su uso es cuando no se conoce el tamaño del contenedor o necesitamos dar un aviso cuando la lista/iterador se ha agotado.

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *