Python suivant ()

La fonction next () renvoie l'élément suivant de l'itérateur.

La syntaxe de next()est:

 suivant (itérateur, par défaut)

next () Paramètres

  • itérateur - next()récupère l'élément suivant de l'itérateur
  • default (facultatif) - cette valeur est renvoyée si l'itérateur est épuisé (il n'y a pas d'élément suivant)

Valeur de retour de next ()

  • La next()fonction renvoie l'élément suivant de l'itérateur.
  • Si l'itérateur est épuisé, il renvoie la defaultvaleur passée en argument.
  • Si le paramètre par défaut est omis et que l'itérateur est épuisé, il déclenche une StopIterationexception.

Exemple 1: obtenir l'élément suivant

 random = (5, 9, 'cat') # converting the list to an iterator random_iterator = iter(random) print(random_iterator) # Output: 5 print(next(random_iterator)) # Output: 9 print(next(random_iterator)) # Output: 'cat' print(next(random_iterator)) # This will raise Error # iterator is exhausted print(next(random_iterator))

Production

 5 9 cat Traceback (dernier appel en dernier): Fichier "python", ligne 18, dans StopIteration

Une liste est un itérable et vous pouvez en obtenir son itérateur en utilisant la iter()fonction en Python.

En savoir plus sur

  • Itérateurs Python
  • Fonction python iter ()

Nous avons eu une erreur de la dernière instruction dans le programme ci-dessus car nous avons essayé d'obtenir l'élément suivant alors qu'aucun élément suivant n'était disponible (l'itérateur est épuisé).

Dans de tels cas, vous pouvez donner une valeur par défaut comme deuxième paramètre.

Exemple 2: Passer la valeur par défaut à next ()

 random = (5, 9) # converting the list to an iterator random_iterator = iter(random) # Output: 5 print(next(random_iterator, '-1')) # Output: 9 print(next(random_iterator, '-1')) # random_iterator is exhausted # Output: '-1' print(next(random_iterator, '-1')) print(next(random_iterator, '-1')) print(next(random_iterator, '-1'))

Production

 5 9 -1 -1 -1

Remarque: en interne, next()appelle la __next__()méthode.

Articles intéressants...