# Copyright (C) 2001-2018, Python Software Foundation # For licence information, see README file. # msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-01-15 22:33+0100\n" "PO-Revision-Date: 2023-02-04 14:18+0100\n" "Last-Translator: Antoine Wecxsteen\n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.2.1\n" #: tutorial/datastructures.rst:5 msgid "Data Structures" msgstr "Structures de données" #: tutorial/datastructures.rst:7 msgid "" "This chapter describes some things you've learned about already in more " "detail, and adds some new things as well." msgstr "" "Ce chapitre reprend plus en détail quelques points déjà décrits précédemment " "et introduit également de nouvelles notions." #: tutorial/datastructures.rst:13 msgid "More on Lists" msgstr "Compléments sur les listes" #: tutorial/datastructures.rst:15 msgid "" "The list data type has some more methods. Here are all of the methods of " "list objects:" msgstr "" "Le type liste dispose de méthodes supplémentaires. Voici toutes les méthodes " "des objets liste :" #: tutorial/datastructures.rst:22 msgid "" "Add an item to the end of the list. Equivalent to ``a[len(a):] = [x]``." msgstr "" "Ajoute un élément à la fin de la liste. Équivalent à ``a[len(a):] = [x]``." #: tutorial/datastructures.rst:28 msgid "" "Extend the list by appending all the items from the iterable. Equivalent to " "``a[len(a):] = iterable``." msgstr "" "Étend la liste en y ajoutant tous les éléments de l'itérable. Équivalent à " "``a[len(a):] = iterable``." #: tutorial/datastructures.rst:35 msgid "" "Insert an item at a given position. The first argument is the index of the " "element before which to insert, so ``a.insert(0, x)`` inserts at the front " "of the list, and ``a.insert(len(a), x)`` is equivalent to ``a.append(x)``." msgstr "" "Insère un élément à la position indiquée. Le premier argument est la " "position de l'élément avant lequel l'insertion doit s'effectuer, donc ``a." "insert(0, x)`` insère l'élément en tête de la liste et ``a.insert(len(a), " "x)`` est équivalent à ``a.append(x)``." #: tutorial/datastructures.rst:43 msgid "" "Remove the first item from the list whose value is equal to *x*. It raises " "a :exc:`ValueError` if there is no such item." msgstr "" "Supprime de la liste le premier élément dont la valeur est égale à *x*. Une " "exception :exc:`ValueError` est levée s'il n'existe aucun élément avec cette " "valeur." #: tutorial/datastructures.rst:50 msgid "" "Remove the item at the given position in the list, and return it. If no " "index is specified, ``a.pop()`` removes and returns the last item in the " "list. (The square brackets around the *i* in the method signature denote " "that the parameter is optional, not that you should type square brackets at " "that position. You will see this notation frequently in the Python Library " "Reference.)" msgstr "" "Enlève de la liste l'élément situé à la position indiquée et le renvoie en " "valeur de retour. Si aucune position n'est spécifiée, ``a.pop()`` enlève et " "renvoie le dernier élément de la liste (les crochets autour du *i* dans la " "signature de la méthode indiquent que ce paramètre est facultatif et non que " "vous devez placer des crochets dans votre code ! Vous retrouverez cette " "notation fréquemment dans le Guide de Référence de la Bibliothèque Python)." #: tutorial/datastructures.rst:60 msgid "Remove all items from the list. Equivalent to ``del a[:]``." msgstr "Supprime tous les éléments de la liste. Équivalent à ``del a[:]``." #: tutorial/datastructures.rst:66 msgid "" "Return zero-based index in the list of the first item whose value is equal " "to *x*. Raises a :exc:`ValueError` if there is no such item." msgstr "" "Renvoie la position du premier élément de la liste dont la valeur égale *x* " "(en commençant à compter les positions à partir de zéro). Une exception :exc:" "`ValueError` est levée si aucun élément n'est trouvé." #: tutorial/datastructures.rst:69 msgid "" "The optional arguments *start* and *end* are interpreted as in the slice " "notation and are used to limit the search to a particular subsequence of the " "list. The returned index is computed relative to the beginning of the full " "sequence rather than the *start* argument." msgstr "" "Les arguments optionnels *start* et *end* sont interprétés de la même " "manière que dans la notation des tranches et sont utilisés pour limiter la " "recherche à une sous-séquence particulière. L'indice renvoyé est calculé " "relativement au début de la séquence complète et non relativement à *start*." #: tutorial/datastructures.rst:78 msgid "Return the number of times *x* appears in the list." msgstr "Renvoie le nombre d'éléments ayant la valeur *x* dans la liste." #: tutorial/datastructures.rst:84 msgid "" "Sort the items of the list in place (the arguments can be used for sort " "customization, see :func:`sorted` for their explanation)." msgstr "" "Ordonne les éléments dans la liste (les arguments peuvent personnaliser " "l'ordonnancement, voir :func:`sorted` pour leur explication)." #: tutorial/datastructures.rst:91 msgid "Reverse the elements of the list in place." msgstr "Inverse l'ordre des éléments dans la liste." #: tutorial/datastructures.rst:97 msgid "Return a shallow copy of the list. Equivalent to ``a[:]``." msgstr "Renvoie une copie superficielle de la liste. Équivalent à ``a[:]``." #: tutorial/datastructures.rst:100 msgid "An example that uses most of the list methods::" msgstr "L'exemple suivant utilise la plupart des méthodes des listes ::" #: tutorial/datastructures.rst:123 msgid "" "You might have noticed that methods like ``insert``, ``remove`` or ``sort`` " "that only modify the list have no return value printed -- they return the " "default ``None``. [#]_ This is a design principle for all mutable data " "structures in Python." msgstr "" "Vous avez probablement remarqué que les méthodes qui ne font que modifier la " "liste, comme ``insert``, ``remove`` ou ``sort``, n'affichent pas de valeur " "de retour (elles renvoient ``None``) [#]_. C'est un principe respecté par " "toutes les structures de données muables en Python." #: tutorial/datastructures.rst:128 msgid "" "Another thing you might notice is that not all data can be sorted or " "compared. For instance, ``[None, 'hello', 10]`` doesn't sort because " "integers can't be compared to strings and *None* can't be compared to other " "types. Also, there are some types that don't have a defined ordering " "relation. For example, ``3+4j < 5+7j`` isn't a valid comparison." msgstr "" "Vous avez peut-être remarqué aussi que certaines données ne peuvent pas être " "ordonnées ni comparées. Par exemple, la liste ``[None, 'hello', 10]`` ne " "peut pas être ordonnée parce que les entiers ne peuvent pas être comparés " "aux chaînes de caractères et *None* ne peut pas être comparé à d'autres " "types. En outre, il existe certains types qui n'ont pas de relation d'ordre " "définie. Par exemple, ``3+4j < 5+7j`` n'est pas une comparaison valide." #: tutorial/datastructures.rst:139 msgid "Using Lists as Stacks" msgstr "Utilisation des listes comme des piles" #: tutorial/datastructures.rst:144 msgid "" "The list methods make it very easy to use a list as a stack, where the last " "element added is the first element retrieved (\"last-in, first-out\"). To " "add an item to the top of the stack, use :meth:`append`. To retrieve an " "item from the top of the stack, use :meth:`pop` without an explicit index. " "For example::" msgstr "" "Les méthodes des listes rendent très facile leur utilisation comme des " "piles, où le dernier élément ajouté est le premier récupéré (« dernier " "entré, premier sorti » ou LIFO pour *last-in, first-out* en anglais). Pour " "ajouter un élément sur la pile, utilisez la méthode :meth:`append`. Pour " "récupérer l'objet au sommet de la pile, utilisez la méthode :meth:`pop` sans " "indicateur de position. Par exemple ::" #: tutorial/datastructures.rst:169 msgid "Using Lists as Queues" msgstr "Utilisation des listes comme des files" #: tutorial/datastructures.rst:173 msgid "" "It is also possible to use a list as a queue, where the first element added " "is the first element retrieved (\"first-in, first-out\"); however, lists are " "not efficient for this purpose. While appends and pops from the end of list " "are fast, doing inserts or pops from the beginning of a list is slow " "(because all of the other elements have to be shifted by one)." msgstr "" "Il est également possible d'utiliser une liste comme une file, où le premier " "élément ajouté est le premier récupéré (« premier entré, premier sorti » ou " "FIFO pour *first-in, first-out*) ; toutefois, les listes ne sont pas très " "efficaces pour réaliser ce type de traitement. Alors que les ajouts et " "suppressions en fin de liste sont rapides, les insertions ou les retraits en " "début de liste sont lents (car tous les autres éléments doivent être décalés " "d'une position)." #: tutorial/datastructures.rst:179 msgid "" "To implement a queue, use :class:`collections.deque` which was designed to " "have fast appends and pops from both ends. For example::" msgstr "" "Pour implémenter une file, utilisez plutôt la classe :class:`collections." "deque` qui a été conçue spécialement pour réaliser rapidement les opérations " "d'ajout et de retrait aux deux extrémités. Par exemple ::" #: tutorial/datastructures.rst:197 msgid "List Comprehensions" msgstr "Listes en compréhension" #: tutorial/datastructures.rst:199 msgid "" "List comprehensions provide a concise way to create lists. Common " "applications are to make new lists where each element is the result of some " "operations applied to each member of another sequence or iterable, or to " "create a subsequence of those elements that satisfy a certain condition." msgstr "" "Les listes en compréhension fournissent un moyen de construire des listes de " "manière très concise. Une application classique consiste à construire une " "liste dont les éléments sont les résultats d'une opération appliquée à " "chaque élément d'une autre séquence ; une autre consiste à créer une sous-" "séquence des éléments respectant une condition donnée." #: tutorial/datastructures.rst:204 msgid "For example, assume we want to create a list of squares, like::" msgstr "" "Par exemple, supposons que l'on veuille créer une liste de carrés, comme ::" #: tutorial/datastructures.rst:213 msgid "" "Note that this creates (or overwrites) a variable named ``x`` that still " "exists after the loop completes. We can calculate the list of squares " "without any side effects using::" msgstr "" "Notez que cela crée (ou remplace) une variable nommée ``x`` qui existe " "toujours après l'exécution de la boucle. On peut calculer une liste de " "carrés sans effet de bord avec ::" #: tutorial/datastructures.rst:219 msgid "or, equivalently::" msgstr "ou, de manière équivalente ::" #: tutorial/datastructures.rst:223 msgid "which is more concise and readable." msgstr "ce qui est plus court et lisible." #: tutorial/datastructures.rst:225 msgid "" "A list comprehension consists of brackets containing an expression followed " "by a :keyword:`!for` clause, then zero or more :keyword:`!for` or :keyword:`!" "if` clauses. The result will be a new list resulting from evaluating the " "expression in the context of the :keyword:`!for` and :keyword:`!if` clauses " "which follow it. For example, this listcomp combines the elements of two " "lists if they are not equal::" msgstr "" "Une liste en compréhension consiste à placer entre crochets une expression " "suivie par une clause :keyword:`!for` puis par zéro ou plus clauses :keyword:" "`!for` ou :keyword:`!if`. Le résultat est une nouvelle liste résultat de " "l'évaluation de l'expression dans le contexte des clauses :keyword:`!for` " "et :keyword:`!if` qui la suivent. Par exemple, cette compréhension de liste " "combine les éléments de deux listes s'ils ne sont pas égaux ::" #: tutorial/datastructures.rst:235 msgid "and it's equivalent to::" msgstr "et c'est équivalent à ::" #: tutorial/datastructures.rst:246 msgid "" "Note how the order of the :keyword:`for` and :keyword:`if` statements is the " "same in both these snippets." msgstr "" "Notez que l'ordre des instructions :keyword:`for` et :keyword:`if` est le " "même dans ces différents extraits de code." #: tutorial/datastructures.rst:249 msgid "" "If the expression is a tuple (e.g. the ``(x, y)`` in the previous example), " "it must be parenthesized. ::" msgstr "" "Si l'expression est un *n*-uplet (c'est-à-dire ``(x, y)`` dans cet exemple), " "elle doit être mise entre parenthèses ::" #: tutorial/datastructures.rst:280 msgid "" "List comprehensions can contain complex expressions and nested functions::" msgstr "" "Les listes en compréhension peuvent contenir des expressions complexes et " "des fonctions imbriquées ::" #: tutorial/datastructures.rst:287 msgid "Nested List Comprehensions" msgstr "Listes en compréhensions imbriquées" #: tutorial/datastructures.rst:289 msgid "" "The initial expression in a list comprehension can be any arbitrary " "expression, including another list comprehension." msgstr "" "La première expression dans une liste en compréhension peut être n'importe " "quelle expression, y compris une autre liste en compréhension." #: tutorial/datastructures.rst:292 msgid "" "Consider the following example of a 3x4 matrix implemented as a list of 3 " "lists of length 4::" msgstr "" "Voyez l'exemple suivant d'une matrice de 3 par 4, implémentée sous la forme " "de 3 listes de 4 éléments ::" #: tutorial/datastructures.rst:301 msgid "The following list comprehension will transpose rows and columns::" msgstr "Cette compréhension de liste transpose les lignes et les colonnes ::" #: tutorial/datastructures.rst:306 msgid "" "As we saw in the previous section, the inner list comprehension is evaluated " "in the context of the :keyword:`for` that follows it, so this example is " "equivalent to::" msgstr "" "Comme nous l'avons vu dans la section précédente, la liste en compréhension " "à l'intérieur est évaluée dans le contexte de l'instruction :keyword:`for` " "qui la suit, donc cet exemple est équivalent à ::" #: tutorial/datastructures.rst:317 msgid "which, in turn, is the same as::" msgstr "lequel est lui-même équivalent à ::" #: tutorial/datastructures.rst:330 msgid "" "In the real world, you should prefer built-in functions to complex flow " "statements. The :func:`zip` function would do a great job for this use case::" msgstr "" "Dans des cas concrets, il est toujours préférable d'utiliser des fonctions " "natives plutôt que des instructions de contrôle de flux complexes. La " "fonction :func:`zip` fait dans ce cas un excellent travail ::" #: tutorial/datastructures.rst:336 msgid "" "See :ref:`tut-unpacking-arguments` for details on the asterisk in this line." msgstr "" "Voir :ref:`tut-unpacking-arguments` pour plus de détails sur l'astérisque de " "cette ligne." #: tutorial/datastructures.rst:341 msgid "The :keyword:`!del` statement" msgstr "L'instruction :keyword:`!del`" #: tutorial/datastructures.rst:343 msgid "" "There is a way to remove an item from a list given its index instead of its " "value: the :keyword:`del` statement. This differs from the :meth:`pop` " "method which returns a value. The :keyword:`!del` statement can also be " "used to remove slices from a list or clear the entire list (which we did " "earlier by assignment of an empty list to the slice). For example::" msgstr "" "Il existe un moyen de retirer un élément d'une liste à partir de sa position " "au lieu de sa valeur : l'instruction :keyword:`del`. Elle diffère de la " "méthode :meth:`pop` qui, elle, renvoie une valeur. L'instruction :keyword:`!" "del` peut également être utilisée pour supprimer des tranches d'une liste ou " "la vider complètement (ce que nous avions fait auparavant en affectant une " "liste vide à la tranche). Par exemple ::" #: tutorial/datastructures.rst:360 msgid ":keyword:`del` can also be used to delete entire variables::" msgstr "" ":keyword:`del` peut aussi être utilisée pour supprimer des variables ::" #: tutorial/datastructures.rst:364 msgid "" "Referencing the name ``a`` hereafter is an error (at least until another " "value is assigned to it). We'll find other uses for :keyword:`del` later." msgstr "" "À partir de là, référencer le nom ``a`` est une erreur (au moins jusqu'à ce " "qu'une autre valeur lui soit affectée). Vous trouverez d'autres utilisations " "de la fonction :keyword:`del` dans la suite de ce tutoriel." #: tutorial/datastructures.rst:371 msgid "Tuples and Sequences" msgstr "*n*-uplets et séquences" #: tutorial/datastructures.rst:373 msgid "" "We saw that lists and strings have many common properties, such as indexing " "and slicing operations. They are two examples of *sequence* data types " "(see :ref:`typesseq`). Since Python is an evolving language, other sequence " "data types may be added. There is also another standard sequence data type: " "the *tuple*." msgstr "" "Nous avons vu que les listes et les chaînes de caractères ont beaucoup de " "propriétés en commun, comme l'indiçage et les opérations sur des tranches. " "Ce sont deux exemples de *séquences* (voir :ref:`typesseq`). Comme Python " "est un langage en constante évolution, d'autres types de séquences y seront " "peut-être ajoutés. Il existe également un autre type standard de séquence : " "le *n*-uplet (*tuple* en anglais)." #: tutorial/datastructures.rst:379 msgid "" "A tuple consists of a number of values separated by commas, for instance::" msgstr "" "Un *n*-uplet consiste en différentes valeurs séparées par des virgules, par " "exemple ::" #: tutorial/datastructures.rst:401 msgid "" "As you see, on output tuples are always enclosed in parentheses, so that " "nested tuples are interpreted correctly; they may be input with or without " "surrounding parentheses, although often parentheses are necessary anyway (if " "the tuple is part of a larger expression). It is not possible to assign to " "the individual items of a tuple, however it is possible to create tuples " "which contain mutable objects, such as lists." msgstr "" "Comme vous pouvez le voir, les *n*-uplets sont toujours affichés entre " "parenthèses, de façon à ce que des *n*-uplets imbriqués soient interprétés " "correctement ; ils peuvent être saisis avec ou sans parenthèses, même si " "celles-ci sont souvent nécessaires (notamment lorsqu'un *n*-uplet fait " "partie d'une expression plus longue). Il n'est pas possible d'affecter de " "valeur à un élément d'un *n*-uplet ; par contre, il est en revanche possible " "de créer des *n*-uplets contenant des objets muables, comme des listes." #: tutorial/datastructures.rst:408 msgid "" "Though tuples may seem similar to lists, they are often used in different " "situations and for different purposes. Tuples are :term:`immutable`, and " "usually contain a heterogeneous sequence of elements that are accessed via " "unpacking (see later in this section) or indexing (or even by attribute in " "the case of :func:`namedtuples `). Lists are :term:" "`mutable`, and their elements are usually homogeneous and are accessed by " "iterating over the list." msgstr "" "Si les *n*-uplets peuvent sembler similaires aux listes, ils sont souvent " "utilisés dans des cas différents et pour des raisons différentes. Les *n*-" "uplets sont :term:`immuables ` et contiennent souvent des " "séquences hétérogènes d'éléments auxquelles on accède par " "« dissociation » (*unpacking* en anglais, voir plus loin) ou par indice (ou " "même par attribut dans le cas des :func:`namedtuples `). Les listes sont souvent :term:`muables ` et " "contiennent des éléments généralement homogènes auxquels on accède en " "itérant sur la liste." #: tutorial/datastructures.rst:416 msgid "" "A special problem is the construction of tuples containing 0 or 1 items: the " "syntax has some extra quirks to accommodate these. Empty tuples are " "constructed by an empty pair of parentheses; a tuple with one item is " "constructed by following a value with a comma (it is not sufficient to " "enclose a single value in parentheses). Ugly, but effective. For example::" msgstr "" "La construction de *n*-uplets ne contenant aucun ou un seul élément est un " "cas particulier : la syntaxe a quelques tournures spécifiques pour le gérer. " "Un *n*-uplet vide se construit avec une paire de parenthèses vides ; un *n*-" "uplet avec un seul élément se construit en faisant suivre la valeur par une " "virgule (placer cette valeur entre parenthèses ne suffit pas). Pas très " "joli, mais efficace. Par exemple ::" #: tutorial/datastructures.rst:431 msgid "" "The statement ``t = 12345, 54321, 'hello!'`` is an example of *tuple " "packing*: the values ``12345``, ``54321`` and ``'hello!'`` are packed " "together in a tuple. The reverse operation is also possible::" msgstr "" "L'instruction ``t = 12345, 54321, 'hello!'`` est un exemple *d'agrégation de " "*n*-uplet* (*tuple packing* en anglais) : les valeurs ``12345``, ``54321`` " "et ``hello!`` sont agrégées ensemble dans un *n*-uplet. L'opération inverse " "est aussi possible ::" #: tutorial/datastructures.rst:437 msgid "" "This is called, appropriately enough, *sequence unpacking* and works for any " "sequence on the right-hand side. Sequence unpacking requires that there are " "as many variables on the left side of the equals sign as there are elements " "in the sequence. Note that multiple assignment is really just a combination " "of tuple packing and sequence unpacking." msgstr "" "Ceci est appelé, de façon plus ou moins appropriée, une *dissociation de " "séquence* (*sequence unpacking* en anglais) et fonctionne pour toute " "séquence placée à droite de l'expression. Cette dissociation requiert autant " "de variables dans la partie gauche qu'il y a d'éléments dans la séquence. " "Notez également que cette affectation multiple est juste une combinaison " "entre une agrégation de *n*-uplet et une dissociation de séquence." #: tutorial/datastructures.rst:447 msgid "Sets" msgstr "Ensembles" #: tutorial/datastructures.rst:449 msgid "" "Python also includes a data type for *sets*. A set is an unordered " "collection with no duplicate elements. Basic uses include membership " "testing and eliminating duplicate entries. Set objects also support " "mathematical operations like union, intersection, difference, and symmetric " "difference." msgstr "" "Python fournit également un type de donnée pour les *ensembles*. Un ensemble " "est une collection non ordonnée sans éléments en double. Un ensemble permet " "de réaliser des tests d'appartenance ou des suppressions de doublons de " "manière simple. Les ensembles savent également effectuer les opérations " "mathématiques telles que les unions, intersections, différences et " "différences symétriques." #: tutorial/datastructures.rst:454 msgid "" "Curly braces or the :func:`set` function can be used to create sets. Note: " "to create an empty set you have to use ``set()``, not ``{}``; the latter " "creates an empty dictionary, a data structure that we discuss in the next " "section." msgstr "" "On crée des ensembles en appelant avec des accolades ou avec la fonction :" "func:`set`. Notez que ``{}`` ne crée pas un ensemble vide, mais un " "dictionnaire (une structure de données dont nous allons parler dans la " "séquence suivante) vide ; utilisez ``set()`` pour ce cas." #: tutorial/datastructures.rst:458 msgid "Here is a brief demonstration::" msgstr "Voici une brève démonstration ::" #: tutorial/datastructures.rst:483 msgid "" "Similarly to :ref:`list comprehensions `, set comprehensions " "are also supported::" msgstr "" "Tout comme pour les :ref:`listes en compréhension `, il est " "possible d'écrire des ensembles en compréhension ::" #: tutorial/datastructures.rst:494 msgid "Dictionaries" msgstr "Dictionnaires" #: tutorial/datastructures.rst:496 msgid "" "Another useful data type built into Python is the *dictionary* (see :ref:" "`typesmapping`). Dictionaries are sometimes found in other languages as " "\"associative memories\" or \"associative arrays\". Unlike sequences, which " "are indexed by a range of numbers, dictionaries are indexed by *keys*, which " "can be any immutable type; strings and numbers can always be keys. Tuples " "can be used as keys if they contain only strings, numbers, or tuples; if a " "tuple contains any mutable object either directly or indirectly, it cannot " "be used as a key. You can't use lists as keys, since lists can be modified " "in place using index assignments, slice assignments, or methods like :meth:" "`append` and :meth:`extend`." msgstr "" "Un autre type de donnée très utile, natif dans Python, est le *dictionnaire* " "(voir :ref:`typesmapping`). Ces dictionnaires sont parfois présents dans " "d'autres langages sous le nom de « mémoires associatives » ou de « tableaux " "associatifs ». À la différence des séquences, qui sont indexées par des " "nombres, les dictionnaires sont indexés par des *clés*, qui peuvent être de " "n'importe quel type immuable ; les chaînes de caractères et les nombres " "peuvent toujours être des clés. Des *n*-uplets peuvent être utilisés comme " "clés s'ils ne contiennent que des chaînes, des nombres ou des *n*-uplets ; " "si un *n*-uplet contient un objet muable, de façon directe ou indirecte, il " "ne peut pas être utilisé comme une clé. Vous ne pouvez pas utiliser des " "listes comme clés, car les listes peuvent être modifiées en place en " "utilisant des affectations par position, par tranches ou via des méthodes " "comme :meth:`append` ou :meth:`extend`." #: tutorial/datastructures.rst:507 msgid "" "It is best to think of a dictionary as a set of *key: value* pairs, with the " "requirement that the keys are unique (within one dictionary). A pair of " "braces creates an empty dictionary: ``{}``. Placing a comma-separated list " "of key:value pairs within the braces adds initial key:value pairs to the " "dictionary; this is also the way dictionaries are written on output." msgstr "" "Le plus simple est de voir un dictionnaire comme un ensemble de paires *clé-" "valeur* au sein duquel les clés doivent être uniques. Une paire d'accolades " "crée un dictionnaire vide : ``{}``. Placer une liste de paires clé-valeur " "séparées par des virgules à l'intérieur des accolades ajoute les valeurs " "correspondantes au dictionnaire ; c'est également de cette façon que les " "dictionnaires sont affichés." #: tutorial/datastructures.rst:513 msgid "" "The main operations on a dictionary are storing a value with some key and " "extracting the value given the key. It is also possible to delete a key:" "value pair with ``del``. If you store using a key that is already in use, " "the old value associated with that key is forgotten. It is an error to " "extract a value using a non-existent key." msgstr "" "Les opérations classiques sur un dictionnaire consistent à stocker une " "valeur pour une clé et à extraire la valeur correspondant à une clé. Il est " "également possible de supprimer une paire clé-valeur avec ``del``. Si vous " "stockez une valeur pour une clé qui est déjà utilisée, l'ancienne valeur " "associée à cette clé est perdue. Si vous tentez d'extraire une valeur " "associée à une clé qui n'existe pas, une exception est levée." #: tutorial/datastructures.rst:519 msgid "" "Performing ``list(d)`` on a dictionary returns a list of all the keys used " "in the dictionary, in insertion order (if you want it sorted, just use " "``sorted(d)`` instead). To check whether a single key is in the dictionary, " "use the :keyword:`in` keyword." msgstr "" "Exécuter ``list(d)`` sur un dictionnaire ``d`` renvoie une liste de toutes " "les clés utilisées dans le dictionnaire, dans l'ordre d'insertion (si vous " "voulez qu'elles soient ordonnées, utilisez ``sorted(d)``). Pour tester si " "une clé est dans le dictionnaire, utilisez le mot-clé :keyword:`in`." #: tutorial/datastructures.rst:524 msgid "Here is a small example using a dictionary::" msgstr "Voici un petit exemple utilisant un dictionnaire ::" #: tutorial/datastructures.rst:545 msgid "" "The :func:`dict` constructor builds dictionaries directly from sequences of " "key-value pairs::" msgstr "" "Le constructeur :func:`dict` fabrique un dictionnaire directement à partir " "d'une liste de paires clé-valeur stockées sous la forme de *n*-uplets ::" #: tutorial/datastructures.rst:551 msgid "" "In addition, dict comprehensions can be used to create dictionaries from " "arbitrary key and value expressions::" msgstr "" "De plus, il est possible de créer des dictionnaires en compréhension depuis " "un jeu de clés et valeurs ::" #: tutorial/datastructures.rst:557 msgid "" "When the keys are simple strings, it is sometimes easier to specify pairs " "using keyword arguments::" msgstr "" "Lorsque les clés sont de simples chaînes de caractères, il est parfois plus " "facile de définir les paires en utilisant des paramètres nommés ::" #: tutorial/datastructures.rst:567 msgid "Looping Techniques" msgstr "Techniques de boucles" #: tutorial/datastructures.rst:569 msgid "" "When looping through dictionaries, the key and corresponding value can be " "retrieved at the same time using the :meth:`items` method. ::" msgstr "" "Lorsque vous faites une boucle sur un dictionnaire, la clé et la valeur " "associée peuvent être récupérées en même temps en utilisant la méthode :meth:" "`items` ::" #: tutorial/datastructures.rst:579 msgid "" "When looping through a sequence, the position index and corresponding value " "can be retrieved at the same time using the :func:`enumerate` function. ::" msgstr "" "Lorsque vous faites une boucle sur une séquence, la position et la valeur " "associée peuvent être récupérées en même temps en utilisant la fonction :" "func:`enumerate`. ::" #: tutorial/datastructures.rst:589 msgid "" "To loop over two or more sequences at the same time, the entries can be " "paired with the :func:`zip` function. ::" msgstr "" "Pour faire une boucle sur deux séquences ou plus en même temps, les éléments " "peuvent être associés en utilisant la fonction :func:`zip` ::" #: tutorial/datastructures.rst:601 msgid "" "To loop over a sequence in reverse, first specify the sequence in a forward " "direction and then call the :func:`reversed` function. ::" msgstr "" "Pour faire une boucle en sens inverse sur une séquence, commencez par " "spécifier la séquence dans son ordre normal, puis appliquez la fonction :" "func:`reversed` ::" #: tutorial/datastructures.rst:613 msgid "" "To loop over a sequence in sorted order, use the :func:`sorted` function " "which returns a new sorted list while leaving the source unaltered. ::" msgstr "" "Pour faire une boucle sur une séquence de manière ordonnée, utilisez la " "fonction :func:`sorted` qui renvoie une nouvelle liste ordonnée sans altérer " "la source ::" #: tutorial/datastructures.rst:627 msgid "" "Using :func:`set` on a sequence eliminates duplicate elements. The use of :" "func:`sorted` in combination with :func:`set` over a sequence is an " "idiomatic way to loop over unique elements of the sequence in sorted " "order. ::" msgstr "" "L'utilisation de la fonction :func:`set` sur une séquence élimine les " "doublons. Combiner les fonctions :func:`sorted` et :func:`set` sur une " "séquence est la façon « canonique » d'itérer sur les éléments uniques d'une " "séquence dans l'ordre. ::" #: tutorial/datastructures.rst:640 msgid "" "It is sometimes tempting to change a list while you are looping over it; " "however, it is often simpler and safer to create a new list instead. ::" msgstr "" "Il est parfois tentant de modifier une liste pendant que l'on itère dessus. " "Il est souvent plus simple et plus sûr de créer une nouvelle liste à la " "place. ::" #: tutorial/datastructures.rst:657 msgid "More on Conditions" msgstr "Plus d'informations sur les conditions" #: tutorial/datastructures.rst:659 msgid "" "The conditions used in ``while`` and ``if`` statements can contain any " "operators, not just comparisons." msgstr "" "Les conditions utilisées dans une instruction ``while`` ou ``if`` peuvent " "contenir n'importe quel opérateur, pas seulement des comparaisons." #: tutorial/datastructures.rst:663 msgid "" "The comparison operators ``in`` and ``not in`` are membership tests that " "determine whether a value is in (or not in) a container. The operators " "``is`` and ``is not`` compare whether two objects are really the same " "object. All comparison operators have the same priority, which is lower " "than that of all numerical operators." msgstr "" "Les opérateurs de comparaison ``in`` et ``not in`` testent si une valeur " "appartient (ou pas) à un conteneur. Les opérateurs ``is`` et ``is not`` " "testent si deux objets sont vraiment le même objet. Tous les opérateurs de " "comparaison ont la même priorité, qui est plus faible que celle des " "opérateurs numériques." #: tutorial/datastructures.rst:669 msgid "" "Comparisons can be chained. For example, ``a < b == c`` tests whether ``a`` " "is less than ``b`` and moreover ``b`` equals ``c``." msgstr "" "Les comparaisons peuvent être chaînées. Par exemple, ``a < b == c`` teste si " "``a`` est inférieur à ``b`` et si, de plus, ``b`` égale ``c``." #: tutorial/datastructures.rst:672 msgid "" "Comparisons may be combined using the Boolean operators ``and`` and ``or``, " "and the outcome of a comparison (or of any other Boolean expression) may be " "negated with ``not``. These have lower priorities than comparison " "operators; between them, ``not`` has the highest priority and ``or`` the " "lowest, so that ``A and not B or C`` is equivalent to ``(A and (not B)) or " "C``. As always, parentheses can be used to express the desired composition." msgstr "" "Les comparaisons peuvent être combinées en utilisant les opérateurs booléens " "``and`` et ``or``, le résultat d'une comparaison (ou de toute expression " "booléenne) pouvant être inversé avec ``not``. Ces opérateurs ont une " "priorité inférieure à celle des opérateurs de comparaison ; entre eux, " "``not`` a la priorité la plus élevée et ``or`` la plus faible, de telle " "sorte que ``A and not B or C`` est équivalent à ``(A and (not B)) or C``. " "Comme d'habitude, les parenthèses permettent d'exprimer l'instruction " "désirée." #: tutorial/datastructures.rst:679 msgid "" "The Boolean operators ``and`` and ``or`` are so-called *short-circuit* " "operators: their arguments are evaluated from left to right, and evaluation " "stops as soon as the outcome is determined. For example, if ``A`` and ``C`` " "are true but ``B`` is false, ``A and B and C`` does not evaluate the " "expression ``C``. When used as a general value and not as a Boolean, the " "return value of a short-circuit operator is the last evaluated argument." msgstr "" "Les opérateurs booléens ``and`` et ``or`` sont appelés opérateurs *en " "circuit court* : leurs arguments sont évalués de la gauche vers la droite et " "l'évaluation s'arrête dès que le résultat est déterminé. Par exemple, si " "``A`` et ``C`` sont vrais et ``B`` est faux, ``A and B and C`` n'évalue pas " "l'expression ``C``. Lorsqu'elle est utilisée en tant que valeur et non en " "tant que booléen, la valeur de retour d'un opérateur en circuit court est " "celle du dernier argument évalué." #: tutorial/datastructures.rst:686 msgid "" "It is possible to assign the result of a comparison or other Boolean " "expression to a variable. For example, ::" msgstr "" "Il est possible d'affecter le résultat d'une comparaison ou d'une autre " "expression booléenne à une variable. Par exemple ::" #: tutorial/datastructures.rst:694 msgid "" "Note that in Python, unlike C, assignment inside expressions must be done " "explicitly with the :ref:`walrus operator ` ``:=``. This avoids a common class of problems encountered " "in C programs: typing ``=`` in an expression when ``==`` was intended." msgstr "" "Notez qu'en Python, à la différence du C, une affectation à l'intérieur " "d'une expression doit être faite explicitement avec :ref:`l'opérateur morse " "` ``:=``. Cela évite des " "erreurs fréquentes que l'on rencontre en C, lorsque l'on tape ``=`` alors " "que l'on voulait faire un test avec ``==``." #: tutorial/datastructures.rst:704 msgid "Comparing Sequences and Other Types" msgstr "Comparer des séquences avec d'autres types" #: tutorial/datastructures.rst:705 msgid "" "Sequence objects typically may be compared to other objects with the same " "sequence type. The comparison uses *lexicographical* ordering: first the " "first two items are compared, and if they differ this determines the outcome " "of the comparison; if they are equal, the next two items are compared, and " "so on, until either sequence is exhausted. If two items to be compared are " "themselves sequences of the same type, the lexicographical comparison is " "carried out recursively. If all items of two sequences compare equal, the " "sequences are considered equal. If one sequence is an initial sub-sequence " "of the other, the shorter sequence is the smaller (lesser) one. " "Lexicographical ordering for strings uses the Unicode code point number to " "order individual characters. Some examples of comparisons between sequences " "of the same type::" msgstr "" "Des séquences peuvent être comparées avec d'autres séquences du même type. " "La comparaison utilise un ordre *lexicographique* : les deux premiers " "éléments de chaque séquence sont comparés et, s'ils diffèrent, cela " "détermine le résultat de la comparaison ; s'ils sont égaux, les deux " "éléments suivants sont comparés à leur tour et ainsi de suite jusqu'à ce que " "l'une des séquences soit épuisée. Si deux éléments à comparer sont eux-mêmes " "des séquences du même type, alors la comparaison lexicographique est " "effectuée récursivement. Si tous les éléments des deux séquences sont égaux, " "les deux séquences sont alors considérées comme égales. Si une séquence est " "une sous-séquence de l'autre, la séquence la plus courte est celle dont la " "valeur est inférieure. La comparaison lexicographique des chaînes de " "caractères utilise le code Unicode des caractères. Voici quelques exemples " "de comparaisons entre séquences de même type ::" #: tutorial/datastructures.rst:725 msgid "" "Note that comparing objects of different types with ``<`` or ``>`` is legal " "provided that the objects have appropriate comparison methods. For example, " "mixed numeric types are compared according to their numeric value, so 0 " "equals 0.0, etc. Otherwise, rather than providing an arbitrary ordering, " "the interpreter will raise a :exc:`TypeError` exception." msgstr "" "Comparer des objets de type différents avec ``<`` ou ``>`` est autorisé si " "les objets ont des méthodes de comparaison appropriées. Par exemple, les " "types numériques sont comparés via leur valeur numérique, donc ``0`` égale " "``0,0``, etc. Dans les autres cas, au lieu de donner un ordre imprévisible, " "l'interpréteur lève une exception :exc:`TypeError`." #: tutorial/datastructures.rst:733 msgid "Footnotes" msgstr "Notes" #: tutorial/datastructures.rst:734 msgid "" "Other languages may return the mutated object, which allows method chaining, " "such as ``d->insert(\"a\")->remove(\"b\")->sort();``." msgstr "" "D'autres langages renvoient l'objet modifié, ce qui permet de chaîner les " "méthodes comme ceci : ``d->insert(\"a\")->remove(\"b\")->sort();``."