Comment faire dans le dictionnaire python_1
5.1. Plus d'informations sur Lists¶
Le type de données de la liste a des méthodes plus. Voici toutes les méthodes d'objets de la liste:
Ajouter un élément à la fin de la liste. Équivalent à un [len (a):] = [x].
liste. étendre (iterable)
Étendre la liste en ajoutant tous les éléments de la itérables. Équivalent à un [len (a):] = iterable.
Insérer un élément à une position donnée. Le premier paramètre est l'indice de l'élément avant qui tend à insérer, de sorte a.insert (0, x) insère à l'avant de la liste, et a.insert (len (a), x) est équivalente à a.append ( X) .
Retirez le premier élément de la liste dont la valeur est x. Il est une erreur s'il n'y a pas de point.
Supprimer l'élément à la position donnée dans la liste, et le retourner. Si aucun index est spécifié, a.pop () supprime et retourne le dernier élément de la liste. (Les crochets autour de l'i dans la signature de la méthode indiquent que le paramètre est facultatif, pas que vous devez taper des crochets à cette position. Vous verrez cette notation fréquemment dans la Python Library Reference.)
Supprimer tous les éléments de la liste. Équivalent à un del [:].
Retour indice de base zéro dans la liste du premier élément dont la valeur est x. Soulève une ValueError s'il n'y a pas de point.
Les arguments en option début et de fin sont interprétées comme dans la notation de la tranche et sont utilisés pour limiter la recherche à une sous particulière de la liste. L'indice de retour est calculée par rapport au début de la séquence complète plutôt que l'argument de départ.
Retourne le nombre de fois x apparaît dans la liste.
liste. tri (key = Aucun. inverse = False)
Trier les éléments de la liste en place (les arguments peuvent être utilisés pour la personnalisation de tri, voir triés () pour leur explication).
Inverser les éléments de la liste en place.
Retour une copie superficielle de la liste. Équivalent à un [:].
Un exemple qui utilise la plupart des méthodes de la liste:
Vous avez sans doute remarqué que les méthodes telles que l'insertion. supprimer ou modifier sorte que seule la liste ont aucune valeur de retour imprimé - ils renvoient le Aucun par défaut. [1] Ceci est un principe de conception pour toutes les structures de données mutables en Python.
5.1.1. Utilisation des listes comme Stacks¶
Les méthodes de la liste, il est très facile à utiliser une liste comme une pile, où le dernier élément ajouté est le premier élément récupéré ( « last-in, first-out »). Pour ajouter un élément au sommet de la pile, utilisez append (). Pour récupérer un élément à partir du haut de la pile, utilisez sans index explicite pop (). Par exemple:
5.1.2. Utilisation des listes comme Queues¶
Il est également possible d'utiliser une liste comme une file d'attente, où le premier élément ajouté est le premier élément recherché ( « first-in, first-out »); Toutefois, les listes ne sont pas efficaces à cet effet. Alors que pops et de y ajouter ses la fin de la liste sont rapides, des insertions ou des pops depuis le début d'une liste est lente (parce que tous les autres éléments doivent être décalées d'un).
Pour mettre en œuvre une file d'attente, l'utilisation collections.deque qui a été conçu pour avoir rapidement et pops ajouter ses deux extrémités. Par exemple:
5.1.3. liste Comprehensions¶
Liste compréhensions fournissent une manière concise pour créer des listes. Les applications courantes sont de faire de nouvelles listes où chaque élément est le résultat de certaines opérations appliquées à chaque membre d'une autre séquence ou itératives, ou pour créer une séquence de ces éléments qui satisfont une certaine condition.
Par exemple, supposons que nous voulons créer une liste de places, comme:
Notez que cela crée (ou remplace) une variable nommée x qui existe toujours après la boucle se termine. Nous pouvons calculer la liste des carrés sans effets secondaires à l'aide:
qui est plus concis et facile à lire.
Une compréhension de liste se compose de supports contenant une expression suivie d'une clause pour, puis zéro ou plus ou si pour articles. Le résultat sera une nouvelle liste résultant de l'évaluation de l'expression dans le contexte du et si des clauses qui suivent. Par exemple, ce listcomp combine les éléments de deux listes si elles ne sont pas égaux:
et il est équivalent à:
Notez comment l'ordre du et si des déclarations est la même dans ces deux extraits.
Si l'expression est un tuple (par exemple, le (x, y) dans l'exemple précédent), il doit être parenthésée.
Liste compréhensions peuvent contenir des expressions complexes et fonctions imbriquées:
5.1.4. Emboîtée Liste Comprehensions¶
L'expression initiale dans une compréhension de la liste peut être une expression arbitraire, y compris une autre compréhension de la liste.
Prenons l'exemple suivant d'une matrice de 3x4 mis en œuvre comme une liste de listes de longueur 3 4:
La compréhension de la liste suivante transposera lignes et colonnes:
Comme nous l'avons vu dans la section précédente, la listcomp imbriquée est évaluée dans le contexte du pour qui le suit, donc cet exemple est équivalent à:
qui, à son tour, est le même que:
Dans le monde réel, vous devriez préférer des fonctions intégrées aux états de flux complexes. La fonction zip () ferait un excellent travail pour ce cas d'utilisation:
Voir Déballer listes d'arguments pour plus de détails sur l'astérisque dans cette ligne.
5.2. Le del statement¶
Il y a un moyen de supprimer un élément dans une liste donnée au lieu de son indice de sa valeur: la déclaration del. Cela diffère de la méthode pop () qui retourne une valeur. La déclaration del peut également être utilisé pour enlever des tranches à partir d'une liste ou d'effacer toute la liste (que nous avons fait plus tôt par la cession d'une liste vide à la tranche). Par exemple:
del peut également être utilisé pour supprimer des variables entières:
Référençant le nom un au-delà d'une erreur (au moins jusqu'à ce qu'une autre valeur est assignée à elle). Nous allons trouver d'autres utilisations pour del plus tard.
5.3. Tuples et Sequences¶
Un tuple est composé d'un certain nombre de valeurs séparées par des virgules, par exemple:
Un problème particulier est la construction de tuples contenant 0 ou 1 éléments: la syntaxe a des manies supplémentaires pour tenir compte de ces. tuples vides sont constitués par une paire de parenthèses vide; un tuple avec un élément est réalisé en suivant une valeur par une virgule (il ne suffit pas pour enfermer une seule valeur entre parenthèses). Laid, mais efficace. Par exemple:
La déclaration t = 12345, 54321, 'bonjour! est un exemple d'emballage tuple. les valeurs 12345. 54321 et « bonjour! » sont emballés ensemble dans un tuple. L'opération inverse est également possible:
Ceci est appelé, de façon assez appropriée, la séquence de déballage et fonctionne pour toute séquence sur la droite. décompactage de séquence exige qu'il y ait autant de variables sur le côté gauche du signe égal comme il y a des éléments dans la séquence. Notez que l'affectation multiple est vraiment juste une combinaison d'emballage tuple et la séquence de déballer.
5.4. Sets¶
Python comprend également un type de données pour les jeux. Un ensemble est une collection non ordonnée sans éléments en double. Utilisations de base comprennent des tests d'adhésion et d'éliminer les doublons. objets ensemble prennent également en charge des opérations mathématiques comme l'union, intersection, la différence et la différence symétrique.
accolades ou la fonction de set () peuvent être utilisées pour créer des ensembles. Remarque: pour créer un ensemble vide, vous devez utiliser set (). ne pas <> ; celle-ci crée un dictionnaire vide, une structure de données que nous discutons dans la section suivante.
Voici une brève démonstration:
De même à la liste compréhensions. ensemble compréhensions sont également pris en charge:
5.5. Dictionaries¶
Un autre type de données utiles construit en Python est le dictionnaire (voir les types de cartographie - dict). Les dictionnaires sont parfois dans d'autres langues comme des « mémoires associatives » ou « tableaux associatifs ». A la différence des séquences, qui sont indexées par un ensemble de nombres, les dictionnaires sont indexés par des clés. qui peut être tout type immuable; les chaînes et les chiffres peuvent toujours être clés. Tuples peuvent être utilisées comme touches si elles ne contiennent que des chaînes, des nombres ou tuples; si un n-uplet contient un objet mutable soit directement, soit indirectement, il ne peut être utilisé comme une clé. Vous ne pouvez pas utiliser des listes comme des clés, car les listes peuvent être modifiées en place en utilisant les affectations d'index, les affectations de tranche, ou des méthodes telles que append () et étendre ().
Il est préférable de penser à un dictionnaire comme un ensemble non ordonné de couples clé: valeur, avec l'exigence que les clés sont uniques (au sein d'un dictionnaire). Une paire d'accolades crée un dictionnaire vide: <>. Mise en place d'une liste séparée par des virgules de clé: paires de valeurs à l'intérieur des accolades ajoute clé initiale: paires de valeurs au dictionnaire; c'est aussi la dictionnaires sont en sortie.
Les principales opérations sur un dictionnaire sont le stockage d'une valeur avec une clé et l'extraction de la valeur étant donné la clé. Il est également possible de supprimer une clé: paire de valeurs avec del. Si vous stockez en utilisant une clé qui est déjà en cours d'utilisation, la valeur ancienne associée à cette clé est oubliée. Il est une erreur d'extraire une valeur à l'aide d'une clé inexistante.
Liste du spectacle (d.keys ()) sur un dictionnaire renvoie une liste de toutes les clés utilisées dans le dictionnaire, dans un ordre arbitraire (si vous le voulez triée, il suffit d'utiliser triées (d.keys ()) à la place). [2] Pour vérifier si une seule clé est dans le dictionnaire, utilisez le mot-clé dans.
Voici un petit exemple en utilisant un dictionnaire:
Le constructeur dict () construit dictionnaires directement à partir de séquences de paires de valeurs clés:
En outre, les compréhensions dict peuvent être utilisés pour créer des dictionnaires à partir d'expressions clés arbitraires et de valeur:
Lorsque les touches sont des chaînes simples, il est parfois plus facile de spécifier des paires en utilisant des arguments de mots clés:
5.6. looping Techniques¶
Quand une boucle à travers les dictionnaires, et la valeur de clé correspondante peut être récupéré en même temps en utilisant la méthode des éléments ().
Quand une boucle à travers une séquence, l'indice de position et la valeur correspondant peuvent être récupérées en même temps en utilisant la fonction enumerate ().
Pour une boucle sur deux ou plusieurs séquences dans le même temps, les entrées peuvent être couplés avec la fonction de fermeture à glissière ().
Pour une boucle sur une séquence dans le sens inverse, d'abord indiquer la séquence dans une direction vers l'avant et ensuite appeler la fonction inverse ().
Pour une boucle sur une séquence dans l'ordre de tri, en utilisant la fonction trié () qui retourne une nouvelle liste triée tout en laissant inchangée la source.
Il est parfois tentant de changer la liste pendant que vous Looping dessus; cependant, il est souvent plus simple et plus sûr de créer une nouvelle liste à la place.
5.7. Plus d'informations sur Conditions¶
Les conditions utilisées dans tout et si les déclarations peuvent contenir des opérateurs, et pas seulement des comparaisons.
Les opérateurs de comparaison et ne pas en échec si une valeur se produit (ne se produit pas) dans une séquence. Les opérateurs est et se comparent pas si deux objets sont vraiment le même objet; cela ne pour les objets modifiables comme les listes. Tous les opérateurs de comparaison ont la même priorité, ce qui est inférieur à celui de tous les opérateurs numériques.
Les comparaisons peuvent être enchaînées. Par exemple, un < b == c tests whether a is less than b and moreover b equals c .
Les opérateurs booléens et et ou sont dits opérateurs de court-circuit: leurs arguments sont évalués de gauche à droite, et l'évaluation arrête dès que le résultat est déterminé. Par exemple, si A et C sont vraies, mais B est faux, A et B et C n'évalue pas l'expression C. Lorsqu'il est utilisé comme une valeur générale et non comme une valeur booléenne, la valeur de retour d'un opérateur court-circuit est le dernier l'argument évalué.
Il est possible d'affecter le résultat d'une comparaison ou une autre expression booléenne à une variable. Par exemple,
5.8. Les séquences et autres Types¶ Comparaison
Notez que les objets comparant de différents types avec < or > est légal à condition que les objets ont des méthodes de comparaison appropriés. Par exemple, les types numériques mixtes sont comparés en fonction de leur valeur numérique, donc 0 est égal à 0,0, etc. Dans le cas contraire, plutôt que de fournir un ordre arbitraire, l'interprète déclenche une exception TypeError.