Python >> Tutoriel Python >  >> Python

Python suivant()

Le next(iterator) La fonction est l'une des fonctions intégrées de Python. Vous pouvez donc l'utiliser sans importer de bibliothèque. Il renvoie la valeur suivante à partir du iterator vous passez comme premier argument obligatoire. Un second argument facultatif default renvoie la valeur par défaut passée au cas où l'itérateur ne fournirait pas de valeur suivante.

Syntaxe :

next(iterator, <default>)

Argumentation :

  • itérateur – l'élément suivant est récupéré du iterator
  • par défaut (facultatif) - valeur de retour si l'itérateur est épuisé (il n'a pas d'élément suivant)

Tutoriels associés :

  • Aide-mémoire des mots-clés Python
  • Itérateurs Python
  • Mot clé de rendement
  • Listes Python
  • Python iter()

Exemple 1 :Aucune valeur par défaut

L'exemple suivant montre le next() fonction en action - sans utiliser de valeur par défaut si l'itérateur est vide.

users = ['Alice', 'Bob', 'Carl', 'David']

# convert the list to an iterator
users_iterator = iter(users)

x = next(users_iterator)
print(x)
# Output: 'Alice'

x = next(users_iterator)
print(x)
# Output: 'Bob'

x = next(users_iterator)
print(x)
# Output: 'Carl'

x = next(users_iterator)
print(x)
# Output: 'David'

Chaque fois que vous appelez le next(iterator) , l'itérateur renvoie l'élément suivant dans l'itérateur sur la liste Python users .

Mais que se passe-t-il si vous appelez le next() fonctionner à nouveau sur le users_iterator maintenant vide objet ?

x = next(users_iterator)
print(x)
'''
Traceback (most recent call last):
  File "C:\Users\xcent\Desktop\Finxter\Blog\HowToConvertBooleanToStringPython\code.py", line 22, in <module>
    x = next(users_iterator)
StopIteration
'''

Python lance un StopIteration Erreur.

Apprenons à résoudre ce problème !

Exemple 2 :Avec valeur par défaut

Ne pas fournir à Python une solution au problème que l'itérateur peut être vide est une source courante d'erreurs ! Vous pouvez corriger les erreurs en passant le default facultatif argument :

x = next(users_iterator, 42)
print(x)
# 42

Maintenant, vous ne pouvez pas planter le next(...) ne fonctionne plus ! Allez-y et essayez-le…

Coquille interactive

Le shell de code interactif vous offre un moyen d'essayer votre compétence nouvellement acquise :comprendre le next() fonction. Pouvez-vous planter le script en modifiant les arguments de la fonction ?

Exercice :Exécutez le code dans le shell interactif. Maintenant, changez la valeur par défaut et relancez !