Fonction iter() de Python
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
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 :
iter()Convertir un objet itérable en un itérateur.- 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
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
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.
Fonctions intégrées de Python3
Autres extensions