2 votes

Les boucles for en python nécessitent un objet itérable ou itérateur. Ainsi, les deux boucles for suivantes produisent le même résultat.

Les boucles for en python nécessitent un objet itérable ou itérateur. Ainsi, les deux boucles for suivantes produisent le même résultat.

list = [1,2,3,4,5,6,7,8,9]
for i in iter(list):
    print(i)
print(end = "\n")
for i in list:
    print(i)

les deux boucles for donnent les résultats suivants 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 Ma question est la suivante : pourquoi avons-nous ces deux formes ? pourquoi n'utilisons-nous pas uniquement la deuxième forme (itérer directement sur l'itérable plutôt que de créer un itérateur à partir de l'itérable et d'itérer) ?

4voto

Kamil Kozioł Points 184

Vous pouvez utiliser iter pour ce type de cas d'utilisation

arr = [1,2,3,4,5,6,7,8,9]

iter_arr = iter(arr)

print(next(iter_arr)) # 1
print(next(iter_arr)) # 2
print(next(iter_arr)) # 3
next(iter_arr)
print(next(iter_arr)) # 5

0voto

Iter() renvoie un objet itérable qui peut être itéré un par un. Une fonctionnalité similaire peut également être obtenue en utilisant le mot-clé yield. Cela permet de réduire l'allocation de mémoire.

Entrée :

res = [1,2,3,4,5]

Utilisation de iter() :

iter_obj = iter(res)

print(next(iter_obj))
print(next(iter_obj))
print(next(iter_obj))
print(next(iter_obj))
print(next(iter_obj))

Utilisation du rendement :

def f(res):
    for i in res:
        yield i

for i in f(res):
    print(i)

Sortie :

1
2
3
4
5

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X