Fonction iter() de Python

Python3 内置函数Fonctions intégrées de Python3


iter()C'est une fonction intégrée à Python utilisée pour convertir un objet itérable en un itérateur.

Un itérateur est un concept très important en Python,iter()Il peut créer un itérateur à partir de n'importe quel objet itérable, permettant d'utilisernext()la fonction pour accéder aux éléments un par un.

Glossaire: iter 是 iterator(迭代器)的缩写。


Syntaxe de base et paramètres

Format de syntaxe

iter(object)
iter(object, sentinel)

Description du paramètre

  • Paramètre object:
    • Type : objet itérable
    • Description : L'objet à convertir en itérateur.
  • Paramètre sentinel(facultatif) :
    • Type : Valeur arbitraire
    • Description : Valeur sentinelle ; l'itération s'arrête lorsque cette valeur est atteinte.

Description de la fonction

  • Valeur de retour: Renvoie un objet itérateur.
  • Caractéristique: L'itérateur ne peut parcourir que vers l'avant, pas vers l'arrière.

Exemples

Exemple 1 : Utilisation de base

Exemple

# Créer un itérateur à partir d'une liste
my_list = [1, 2, 3]
iterator = iter(my_list)

# Utiliser next() pour obtenir des éléments
print(next(iterator))  # Sortie : 1
print(next(iterator))  # Sortie : 2
print(next(iterator))  # Sortie : 3

# Un nouvel appel lève StopIteration
# print(next(iterator))

# On peut aussi parcourir avec une boucle for
my_list = [1, 2, 3]
for item in iter(my_list):
    print(item, end=" ")
# Sortie : 1 2 3

Sortie attendue :

1
2
3
1 2 3

Explication du code :

  1. iter()Convertir un objet itérable en un itérateur.
  2. Un itérateur ne peut être parcouru qu'une seule fois ; une fois épuisé, il doit être recréé.

Exemple 2 : Création à partir de chaînes et de tuples

Exemple

# Itérateur de chaîne
s = "hello"
iterator = iter(s)

print(next(iterator))  # Sortie : h
print(next(iterator))  # Sortie : e
print(next(iterator))  # Sortie : l

# Itérateur de tuple
t = (1, 2, 3)
iterator = iter(t)

print(next(iterator))  # Sortie : 1
print(next(iterator))  # Sortie : 2

Sortie attendue :

h
e
l
1
2

Explication du code :

  • Un itérateur de chaîne renvoie un caractère à la fois.
  • Un itérateur de tuple renvoie un élément à la fois.

Exemple 3 : Utilisation du paramètre sentinel

Exemple

# Créer un itérateur personnalisé à l'aide de sentinel
def fibonacci():
    n = 0
    while True:
        yield n
        n += 1
        if n > 10:
            raise StopIteration

# Utiliser sentinel (s'arrêter lorsqu'une certaine valeur est lue)
class ReadUntil:
    def __init__(self, data, stop_at):
        self.data = data
        self.stop_at = stop_at
        self.index = 0

    def __iter__(self):
        return self

    def __next__(self):
        if self.index >= len(self.data):
            raise StopIteration
        value = self.data[self.index]
        if value == self.stop_at:
            raise StopIteration
        self.index += 1
        return value

# Créer un itérateur, s'arrêter lorsqu'on rencontre "END"
data = ["a", "b", "c", "END", "d"]
iterator = iter(lambda: ReadUntil(data, "END"), Aucune)

for item in iterator:
    print(item, end=" ")
# Sortie : a b c

Sortie attendue :

a b c

Le paramètre sentinelle est utilisé pour créer un comportement d'itération personnalisé, généralement utilisé avec un callable.


Python3 内置函数Fonctions intégrées de Python3


Autres extensions