Je veux maîtriser Iterable, Iterator et Generator, mais honnêtement, je ne peux que le comprendre d'une manière ou d'une autre, donc je l'ai résumé brièvement pour qu'il soit facile à imaginer.
Un objet qui peut être utilisé à plusieurs reprises. Les objets des classes list, dict, set et str sont itérables. En termes simples, ce que vous pouvez utiliser avec le *** pour la syntaxe ***
Iterable est un type d'itérable (l'itérable n'est pas nécessairement un iterable) En termes simples, c'est comme une *** liste *** renvoie l'élément courant avec next () et passe à l'élément suivant Autrement dit *** Sortez quelque chose comme une liste jusqu'à ce qu'elle soit vide ***
S'il y a une [valeur de retour de rendement] dans la fonction, cette fonction est appelée une fonction de générateur. De plus, la notation d'inclusion de liste passée de crochets à crochets est appelée expression de générateur. Exemple *** (i pour i dans la plage (N)) *** La valeur de retour de la fonction ou de l'expression est appelée un itérateur de générateur. En termes simples, c'est *** qui renvoie un itérateur ***.
Diagramme d'image
Fonctionnalités du générateur
def sample():
cumsum = 0
for i in range(1, 5):
cumsum += i
print(f'D'abord ici →{cumsum}')
yield cumsum
for cumsum in generator_sample2(): #point
print(f'Rendement minutes →{cumsum}')
*** <Résultat de sortie> *** D'abord ici → 1 Rendement minutes → 1 D'abord ici → 3 Rendement minutes → 3 D'abord ici → 6 Rendement minutes → 6 D'abord ici → 10 Rendement minutes → 10
Caractéristiques de l'itérateur 1
sample_list = [i for i in range(1, 6)]
print(f'Le contenu de la liste{sample_list}')
sample_iter = iter(sample_list) #iter()Faites-en un itérateur
for i in sample_iter:
print(i)
print(f'Le contenu de la liste ne change pas{sample_list}')
print(f'L'itérateur devient vide lorsqu'il est utilisé{list(sample_iter)}')
*** <Résultat de sortie> *** Contenu de la liste [1, 2, 3, 4, 5] 1 2 3 4 5 Le contenu de la liste ne change pas [1, 2, 3, 4, 5] L'itérateur est vide lorsqu'il est utilisé []
Fonction Itérateur 2
sample_list = [i for i in range(1, 6)]
print(f'Le contenu de la liste{sample_list}')
sample_iter = iter(sample_list) #iter()Faites-en un itérateur
print(f'Quelque chose comme une liste{sample_iter}') #Je l'utilise ici
print(f'Peut être vu comme une liste{list(sample_iter)}')
print(f'L'itérateur devient vide lorsqu'il est utilisé{list(sample_iter)}')
*** <Résultat de sortie> *** Contenu de la liste [1, 2, 3, 4, 5] Quelque chose comme un objet list <list_iterator à 0x7fbf11e34b80> Vu sous forme de liste [1, 2, 3, 4, 5] L'itérateur est vide lorsqu'il est utilisé []
*** <Référence> *** [À propos de Iterable](https://python.ms/iterable/#_1-%E5%85%B7%E4%BD%93%E7%9A%84%E3%81%AB%E8%A8%80%E3 % 81% 88% E3% 81% B0) [À propos d'Iterator](https://python.ms/iterator/#_1-%E3%82%A4%E3%83%86%E3%83%AC%E3%83%BC%E3%82%BF%E3 % 82% 92% E8% A7% A6% E3% 81% A3% E3% 81% A6% E3% 81% BF% E3% 82% 8B% E3% 80% 82) À propos du générateur
** Addenda **
@shiracamus Merci d'avoir souligné.
Recommended Posts