[Python] Une compréhension approximative des itérables, des itérateurs et des générateurs

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.

Itérable

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 ***

Itérateur

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 ***

Générateur

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 スクリーンショット 2020-05-28 14.47.39.png

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

[Python] Une compréhension approximative des itérables, des itérateurs et des générateurs
Itérateur et générateur Python
Une compréhension approximative de python-fire et un mémo
[Python] Une compréhension approximative du module de journalisation
Connectez beaucoup de Python ou et et
Compréhension complète du threading Python et du multitraitement
Prise en compte des forces et faiblesses de Python
Une comparaison rapide des bibliothèques de test Python et node.js
Générez des nombres de Fibonacci avec des fermetures, des itérateurs et des générateurs Python
Obtenez une compréhension abstraite des modules et des packages Python
Notation et générateur d'inclusion de liste Python
Installation source et installation de Python
Compréhension complète du débogage Python
Passons en revue les spécifications du langage autour des itérateurs et des générateurs Python
Détecter les objets d'une couleur et d'une taille spécifiques avec Python
Un résumé approximatif des différences entre Windows et Linux
Python: créer un dictionnaire à partir d'une liste de clés et de valeurs
Python a + = b et a = a + b sont différents
Un enregistrement de patcher un package python
Construction d'environnement de python et opencv
L'histoire de Python et l'histoire de NaN
Une bonne description des décorateurs Python
Installer SciPy et matplotlib (Python)
Python et DB: comprendre le curseur DBI
[Python] Un mémorandum de belle soupe4
Un résumé approximatif de l'histoire du système d'exploitation
[Python] renvoie A [ou / et] B
Coexistence de Python2 et 3 avec CircleCI (1.0)
Résumé des index et des tranches Python
Réputation des livres Python et des livres de référence
Mémorandum de l'outil de gestion de paquets Python ez_setup
Créer et tester un environnement CI pour plusieurs versions de Python
Installation du code Visual Studio et installation de python
Calculer l'itinéraire le plus court d'un graphe avec la méthode Dyxtra et Python
Compréhension complète de la programmation asynchrone Python
Afficher une liste d'alphabets en Python 3
Extraction de tweet.js (json.loads et eval) (Python)
Créer un diagramme de relations des modules Python
Un petit examen minutieux de Pandas 1.0 et Dask
Un mémo contenant Python2.7 et Python3 dans CentOS
Mémorandum sur le QueryDict de Django
Compréhension complète de la programmation orientée objet de Python
[python] Obtenir une liste de variables d'instance
[python] [meta] Le type de python est-il un type?
Une histoire sur Python pop and append
Introduction facile de la série python3 et d'OpenCV3
[Python] Diverses combinaisons de chaînes de caractères et de valeurs
L'histoire du traitement A du blackjack (python)
[Python] Obtenir une liste de dossiers uniquement
Automatisation égale de l'installation de Python et PyPI
Projet Euler # 1 "Multiple de 3 et 5" en Python
Mémorandum du processus de suppression de chaîne python
[Python] Créer une liste de date et d'heure (type datetime) pour une certaine période
Créez un environnement python pour apprendre la théorie et la mise en œuvre de l'apprentissage profond
[Python] Un programme qui calcule le nombre de mises à jour des enregistrements les plus élevés et les plus faibles
Obtenez le cours de l'action d'une entreprise japonaise avec Python et faites un graphique
Un mémo qui a fait un tutoriel pour exécuter python sur heroku
[AtCoder] Résoudre un problème de ABC101 ~ 169 avec Python
Dessiner un graphique d'une fonction quadratique en Python
Résumé de la correspondance entre les opérations de tableau ruby et python
Résumé des différences entre PHP et Python