pakdoltogel.net
Jetez un œil à l'exemple de compréhension du dictionnaire ci-dessous pour voir comment cela fonctionne: correspondant = {i: i * 2 pour i dans la plage 10 sinon i% 2 == 0} imprimer corr Sortie: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18} Le code ci-dessus parcourt la liste des nombres entre 1 et 9 et en fait les clés. Liste par compréhension python 1. Il indique ensuite à Python de multiplier chaque clé par deux. Enfin, il présente les résultats de cette opération comme les valeurs correspondantes pour chaque clé dans letableau résultant. Une compréhension d'ensemble est un peu similaire à une compréhension de liste. Voici un exemple d'une compréhension d'ensemble: nombres = {i ** 2 pour i dans la plage 10 si i% 4 == 0} imprimer chiffres Sortie: {0, 16, 64} Cependant, contrairement à la compréhension de liste, la compréhension d'ensemble supprime les doublons: nums = {i pour i dans la plage 20 si i% 2 == 1 pour k dans la plage 10 si k% 2 == 1} imprimer nums Sortie: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19} Vous pouvez essayer le code ci-dessus en utilisant une compréhension de liste pour voir en quoi ils diffèrent.
Le résultat final est également dans un tableau. L'extrait de code suivant montre comment nous pouvons utiliser cette méthode: import numpy as np l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1] pos = ((l1) == 1)[0] Production: [0 2 8] Le more_itertools est un module tiers et pratique. Il possède de nombreuses fonctions qui peuvent créer un code efficace et compact lorsqu'on travaille avec des itérables. Comment utiliser la compréhension de liste en Python. La fonction locate() de ce module renvoie les indices des éléments qui sont True pour la condition. Elle renvoie un objet itertools. L'extrait de code suivant explique comment nous pouvons utiliser cette méthode: from more_itertools import locate pos = list(locate(l1, lambda x: x == 1)) Nous utilisons la fonction list() pour nous assurer que le résultat final est sous la forme d'une liste. Article connexe - Python List Convertir un dictionnaire en liste en Python Supprimer toutes les occurrences d'un élément d'une liste en Python Supprimer les doublons de la liste en Python Comment obtenir la moyenne d'une liste en Python
J'aime principalement deux choses dans le langage Python: la redoutable simplicité de sa syntaxe, et l'incroyable puissance des listes en compréhension, permettant d'effectuer des traitements en une seule ligne imbuvable. Oui, c'est parfaitement contraire au premier point. Je vais donc revenir sur ces listes en compréhensions. De quoi parle-t-on? Les listes en compréhension sont une syntaxe présente dans le langage Python (entre autres) permettant de filtrer un itérable (comme une liste). En gros, cela permet l'écriture d'une boucle for dont la finalité est de créer une liste. Liste par compréhension python. Un exemple sera plus parlant. resultat = [] for i in range ( 10): resultat. append ( i * 2) Cette syntaxe classique utilise 3 lignes pour générer la simple liste [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]. Voyons maintenant comment écrire cela autrement: resultat = [ i * 2 for i in range ( 10)] Voila. Rien de plus. Nous arrivons au même résultat avec une écriture bien plus concise. Il est possible de compléter l'exemple précédent: if ( i% 2 == 0): resultat.
Attention cependant à ne pas confondre une compréhension de liste avec un open pour boucle. Par exemple, disons utiliser une boucle ouverte pour pour obtenir une liste de tous les multiples de trois entre 1 et 30: maListe = [] pour i dans la plage 1, 11: i * 3 imprimer maListe Sortie: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30] Pour comparer les deux, faisons la même chose en utilisant une compréhension de liste: multiplesOf3 = [i * 3 pour i dans la plage 1, 11] impression multiplesOf3 Sortie = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30] Vous pouvez également utiliser une compréhension de liste avec des instructions conditionnelles.
append ( i) On itère i de 0 à 9, et on insère i dans resultat si celui-ci est pair (c'est à dire si le résultat de sa division par 2 est nul). Voyons maintenant la version en liste en compréhension: resultat = [ i for i in range ( 10) if i% 2 == 0] On peut donc, grâce à la version verbeuse de l'expression, isoler les différentes parties: Un itérable, ici range(10), qui va nous servir de donnée de base; Une valeur, calculée pour chaque passage dans la boucle (il n'est pas obligatoire d'utiliser une valeur provenant de la source); Une condition optionnelle, indiquée après l'itérable source. La puissance des listes en compréhension est incroyable. Compréhensions de liste en Python - Autre. Pensez que l'itérable source de votre liste en compréhension peut lui aussi être une liste en compréhension! Expressions génératrices Si vous ne connaissez pas les générateurs en Python, il s'agit de structures itérables dont la valeur est calculée au moment où on tente d'y accéder, et non pas à l'assignation. Ce qui permet d'itérer sur de très gros volumes de données, mais également d'itérer à l'infini sur une valeur.
Les compréhensions de liste sont souvent utilisées en Python pour écrire des instructions d'une seule ligne qui créent une nouvelle liste ou un nouveau dictionnaire en parcourant un objet itérable. Cet article expliquera comment utiliser les compréhensions de liste en Python, en commençant par une explication de base du fonctionnement des boucles for en Python. Boucle For en Python Une instruction de boucle for en Python itère séquentiellement sur les membres de tout objet, liste, chaîne, etc. Par rapport à d'autres langages de programmation, sa syntaxe est beaucoup plus claire et ne nécessite pas de définir manuellement les étapes d'itération et de démarrer l'itération. Bien qu'il existe des moyens de rendre son comportement identique à celui des autres langages de programmation (cela ne sera pas couvert dans cet article). Débuter avec Python au lycée. Vous pouvez également exercer un certain contrôle sur les boucles for en utilisant des instructions telles que continue, break, pass, etc. Vous trouverez ci-dessous un exemple simple de boucle for en Python: pour X dans gamme ( dix): imprimer ( X) La boucle for ci-dessus imprimera dix nombres commençant à 0 et se terminant à 9.
Nous pouvons stocker le résultat final dans une nouvelle liste. Dans l'exemple suivant, nous itérons sur la liste en utilisant la fonction range(): l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1] pos = [] x = 1 #The required element for i in range(len(l1)): if l1[i] == x: (i) print(pos) Production: [0, 2, 8] Une façon plus efficace et plus compacte de mettre en œuvre le code ci-dessus est d'utiliser la compréhension de la liste ci-dessous. l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1] pos = [i for i in range(len(l1)) if l1[i]==1] De même, nous pouvons également utiliser la fonction enumerate(), qui renvoie l'index et la valeur ensemble. Par exemple: l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1] pos = [i for i, x in enumerate(l1) if x == 1] Utiliser la fonction () pour trouver les indices de toutes les occurrences d'un élément en Python La bibliothèque NumPy a la fonction where(), qui est utilisée pour retourner les indices d'un élément dans un tableau basé sur une condition quelconque. Pour cette méthode, nous devons passer la liste sous forme de tableau.