# 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: 2022-12-11 19:25+0100\n" "Last-Translator: Jean Abou Samra \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" #: howto/sorting.rst:4 msgid "Sorting HOW TO" msgstr "Guide pour le tri" #: howto/sorting.rst:0 msgid "Author" msgstr "Auteur" #: howto/sorting.rst:6 msgid "Andrew Dalke and Raymond Hettinger" msgstr "Andrew Dalke et Raymond Hettinger" #: howto/sorting.rst:0 msgid "Release" msgstr "Version" #: howto/sorting.rst:7 msgid "0.1" msgstr "0.1" #: howto/sorting.rst:10 msgid "" "Python lists have a built-in :meth:`list.sort` method that modifies the list " "in-place. There is also a :func:`sorted` built-in function that builds a " "new sorted list from an iterable." msgstr "" "Les listes Python ont une méthode native :meth:`list.sort` qui modifie les " "listes elles-mêmes. Il y a également une fonction native :func:`sorted` qui " "construit une nouvelle liste triée depuis un itérable." #: howto/sorting.rst:14 msgid "" "In this document, we explore the various techniques for sorting data using " "Python." msgstr "" "Dans ce document, nous explorons différentes techniques pour trier les " "données en Python." #: howto/sorting.rst:18 msgid "Sorting Basics" msgstr "Les bases du tri" #: howto/sorting.rst:20 msgid "" "A simple ascending sort is very easy: just call the :func:`sorted` function. " "It returns a new sorted list:" msgstr "" "Un tri ascendant simple est très facile : il suffit d'appeler la fonction :" "func:`sorted`. Elle renvoie une nouvelle liste triée :" #: howto/sorting.rst:28 msgid "" "You can also use the :meth:`list.sort` method. It modifies the list in-place " "(and returns ``None`` to avoid confusion). Usually it's less convenient " "than :func:`sorted` - but if you don't need the original list, it's slightly " "more efficient." msgstr "" "Vous pouvez aussi utiliser la méthode :meth:`list.sort`. Elle modifie la " "liste elle-même (et renvoie ``None`` pour éviter les confusions). " "Habituellement, cette méthode est moins pratique que la fonction :func:" "`sorted` -- mais si vous n'avez pas besoin de la liste originale, cette " "technique est légèrement plus efficace." #: howto/sorting.rst:40 msgid "" "Another difference is that the :meth:`list.sort` method is only defined for " "lists. In contrast, the :func:`sorted` function accepts any iterable." msgstr "" "Une autre différence est que la méthode :meth:`list.sort` est seulement " "définie pour les listes. Au contraire, la fonction :func:`sorted` accepte " "n'importe quel itérable." #: howto/sorting.rst:49 msgid "Key Functions" msgstr "Fonctions clef" #: howto/sorting.rst:51 msgid "" "Both :meth:`list.sort` and :func:`sorted` have a *key* parameter to specify " "a function (or other callable) to be called on each list element prior to " "making comparisons." msgstr "" ":meth:`list.sort` et :func:`sorted` ont un paramètre *key* afin de spécifier " "une fonction (ou autre appelable) qui peut être appelée sur chaque élément " "de la liste avant d'effectuer des comparaisons." #: howto/sorting.rst:55 msgid "For example, here's a case-insensitive string comparison:" msgstr "Par exemple, voici une comparaison de texte insensible à la casse :" #: howto/sorting.rst:62 msgid "" "The value of the *key* parameter should be a function (or other callable) " "that takes a single argument and returns a key to use for sorting purposes. " "This technique is fast because the key function is called exactly once for " "each input record." msgstr "" "La valeur du paramètre *key* doit être une fonction (ou autre appelable) qui " "prend un seul argument et renvoie une clef à utiliser à des fins de tri. " "Cette technique est rapide car la fonction clef est appelée exactement une " "seule fois pour chaque enregistrement en entrée." #: howto/sorting.rst:67 msgid "" "A common pattern is to sort complex objects using some of the object's " "indices as keys. For example:" msgstr "" "Un usage fréquent est de faire un tri sur des objets complexes en utilisant " "les indices des objets en tant que clef. Par exemple :" #: howto/sorting.rst:80 msgid "" "The same technique works for objects with named attributes. For example:" msgstr "" "La même technique marche pour des objets avec des attributs nommés. Par " "exemple :" #: howto/sorting.rst:101 msgid "Operator Module Functions" msgstr "Fonctions du module *operator*" #: howto/sorting.rst:103 msgid "" "The key-function patterns shown above are very common, so Python provides " "convenience functions to make accessor functions easier and faster. The :mod:" "`operator` module has :func:`~operator.itemgetter`, :func:`~operator." "attrgetter`, and a :func:`~operator.methodcaller` function." msgstr "" "Les fonctions clef utilisées ci-dessus sont courantes, donc Python fournit " "des fonctions permettant de rendre plus simple et plus rapide l'usage des " "fonctions d'accesseur. Le module :mod:`operator` contient les fonctions :" "func:`~operator.itemgetter`, :func:`~operator.attrgetter`, et :func:" "`~operator.methodcaller`." #: howto/sorting.rst:108 msgid "Using those functions, the above examples become simpler and faster:" msgstr "" "En utilisant ces fonctions, les exemples au dessus deviennent plus simples " "et plus rapides :" #: howto/sorting.rst:120 msgid "" "The operator module functions allow multiple levels of sorting. For example, " "to sort by *grade* then by *age*:" msgstr "" "Les fonctions du module *operator* permettent plusieurs niveaux de tri. Par " "exemple, pour trier par *grade* puis par *age* :" #: howto/sorting.rst:132 msgid "Ascending and Descending" msgstr "Ascendant et descendant" #: howto/sorting.rst:134 msgid "" "Both :meth:`list.sort` and :func:`sorted` accept a *reverse* parameter with " "a boolean value. This is used to flag descending sorts. For example, to get " "the student data in reverse *age* order:" msgstr "" ":meth:`list.sort` et :func:`sorted` acceptent un paramètre nommé *reverse* " "avec une valeur booléenne. C'est utilisé pour déterminer l'ordre descendant " "des tris. Par exemple, pour avoir les données des étudiants dans l'ordre " "inverse par *age* :" #: howto/sorting.rst:147 msgid "Sort Stability and Complex Sorts" msgstr "Stabilité des tris et tris complexes" #: howto/sorting.rst:149 msgid "" "Sorts are guaranteed to be `stable `_\\. That means that when multiple records have " "the same key, their original order is preserved." msgstr "" "Les tris sont garantis `stables `_\\. Cela signifie que lorsque " "plusieurs enregistrements on la même clef, leur ordre original est préservé." #: howto/sorting.rst:159 msgid "" "Notice how the two records for *blue* retain their original order so that " "``('blue', 1)`` is guaranteed to precede ``('blue', 2)``." msgstr "" "Notez comme les deux enregistrements pour *blue* gardent leur ordre original " "et que par conséquent il est garanti que ``('blue', 1)`` précède ``('blue', " "2)``." #: howto/sorting.rst:162 msgid "" "This wonderful property lets you build complex sorts in a series of sorting " "steps. For example, to sort the student data by descending *grade* and then " "ascending *age*, do the *age* sort first and then sort again using *grade*:" msgstr "" "Cette propriété fantastique vous permet de construire des tris complexes " "dans des tris en plusieurs étapes. Par exemple, afin de sortir les données " "des étudiants en ordre descendant par *grade* puis en ordre ascendant par " "*age*, effectuez un tri par *age* en premier puis un second tri par *grade* :" #: howto/sorting.rst:172 msgid "" "This can be abstracted out into a wrapper function that can take a list and " "tuples of field and order to sort them on multiple passes." msgstr "" "Ceci peut être encapsulé dans une fonction qui prend une liste et des n-" "uplets (attribut, ordre) pour les trier en plusieurs passes." #: howto/sorting.rst:185 msgid "" "The `Timsort `_ algorithm used in " "Python does multiple sorts efficiently because it can take advantage of any " "ordering already present in a dataset." msgstr "" "L'algorithme `Timsort `_ utilisé dans " "Python effectue de multiples tris efficacement parce qu'il peut tirer " "avantage de l'ordre existant dans un jeu de données." #: howto/sorting.rst:190 #, fuzzy msgid "Decorate-Sort-Undecorate" msgstr "La méthode traditionnelle utilisant Decorate-Sort-Undecorate" #: howto/sorting.rst:192 msgid "This idiom is called Decorate-Sort-Undecorate after its three steps:" msgstr "" "Cette technique est appelée Decorate-Sort-Undecorate et se base sur trois " "étapes :" #: howto/sorting.rst:194 msgid "" "First, the initial list is decorated with new values that control the sort " "order." msgstr "" "Premièrement, la liste de départ est décorée avec les nouvelles valeurs qui " "contrôlent l'ordre du tri." #: howto/sorting.rst:196 msgid "Second, the decorated list is sorted." msgstr "En second lieu, la liste décorée est triée." #: howto/sorting.rst:198 msgid "" "Finally, the decorations are removed, creating a list that contains only the " "initial values in the new order." msgstr "" "Enfin, la décoration est supprimée, créant ainsi une liste qui contient " "seulement la valeur initiale dans le nouvel ordre." #: howto/sorting.rst:201 msgid "" "For example, to sort the student data by *grade* using the DSU approach:" msgstr "" "Par exemple, pour trier les données étudiant par *grade* en utilisant " "l'approche DSU :" #: howto/sorting.rst:208 msgid "" "This idiom works because tuples are compared lexicographically; the first " "items are compared; if they are the same then the second items are compared, " "and so on." msgstr "" "Cette technique marche parce que les *n*-uplets sont comparés par ordre " "lexicographique; les premiers objets sont comparés; si il y a des objets " "identiques, alors l'objet suivant est comparé, et ainsi de suite." #: howto/sorting.rst:212 msgid "" "It is not strictly necessary in all cases to include the index *i* in the " "decorated list, but including it gives two benefits:" msgstr "" "Il n'est pas strictement nécessaire dans tous les cas d’inclure l'indice *i* " "dans la liste décorée, mais l'inclure donne deux avantages :" #: howto/sorting.rst:215 msgid "" "The sort is stable -- if two items have the same key, their order will be " "preserved in the sorted list." msgstr "" "Le tri est stable -- si deux objets on la même clef, leur ordre sera " "préservé dans la liste triée." #: howto/sorting.rst:218 msgid "" "The original items do not have to be comparable because the ordering of the " "decorated tuples will be determined by at most the first two items. So for " "example the original list could contain complex numbers which cannot be " "sorted directly." msgstr "" "Les objets d'origine ne sont pas nécessairement comparables car l'ordre des " "*n*-uplets décorés sera déterminé par au plus les deux premiers objets. Donc " "par exemple la liste originale pourrait contenir des nombres complexes qui " "pourraient ne pas être triés directement." #: howto/sorting.rst:223 msgid "" "Another name for this idiom is `Schwartzian transform `_\\, after Randal L. Schwartz, who " "popularized it among Perl programmers." msgstr "" "Un autre nom pour cette technique est `Schwartzian transform `_\\, après que Randal L. Schwartz " "l'ait popularisé chez les développeurs Perl." #: howto/sorting.rst:227 msgid "" "Now that Python sorting provides key-functions, this technique is not often " "needed." msgstr "" "Maintenant que le tri Python fournit des fonctions-clef, cette technique " "n'est plus souvent utilisée." #: howto/sorting.rst:230 #, fuzzy msgid "Comparison Functions" msgstr "Fonctions du module *operator*" #: howto/sorting.rst:232 msgid "" "Unlike key functions that return an absolute value for sorting, a comparison " "function computes the relative ordering for two inputs." msgstr "" #: howto/sorting.rst:235 msgid "" "For example, a `balance scale `_ compares two samples giving a " "relative ordering: lighter, equal, or heavier. Likewise, a comparison " "function such as ``cmp(a, b)`` will return a negative value for less-than, " "zero if the inputs are equal, or a positive value for greater-than." msgstr "" #: howto/sorting.rst:242 msgid "" "It is common to encounter comparison functions when translating algorithms " "from other languages. Also, some libraries provide comparison functions as " "part of their API. For example, :func:`locale.strcoll` is a comparison " "function." msgstr "" #: howto/sorting.rst:246 msgid "" "To accommodate those situations, Python provides :class:`functools." "cmp_to_key` to wrap the comparison function to make it usable as a key " "function::" msgstr "" #: howto/sorting.rst:253 msgid "Odds and Ends" msgstr "Et n'oublions pas" #: howto/sorting.rst:255 #, fuzzy msgid "" "For locale aware sorting, use :func:`locale.strxfrm` for a key function or :" "func:`locale.strcoll` for a comparison function. This is necessary because " "\"alphabetical\" sort orderings can vary across cultures even if the " "underlying alphabet is the same." msgstr "" "Pour du tri de texte localisé, utilisez :func:`locale.strxfrm` en tant que " "fonction clef ou :func:`locale.strcoll` comme fonction de comparaison." #: howto/sorting.rst:260 msgid "" "The *reverse* parameter still maintains sort stability (so that records with " "equal keys retain the original order). Interestingly, that effect can be " "simulated without the parameter by using the builtin :func:`reversed` " "function twice:" msgstr "" "Le paramètre *reverse* maintient toujours un tri stable (de telle sorte que " "les enregistrements avec des clef égales gardent le même ordre). Notez que " "cet effet peut être simulé sans le paramètre en utilisant la fonction " "native :func:`reversed` deux fois :" #: howto/sorting.rst:274 msgid "" "The sort routines use ``<`` when making comparisons between two objects. So, " "it is easy to add a standard sort order to a class by defining an :meth:" "`__lt__` method:" msgstr "" "Pour effectuer les comparaisons entre deux objets, les routines de tri " "utilisent l'opérateur ``<``. Il est donc facile d'ajouter un ordre de tri " "standard à une classe en définissant sa méthode :meth:`__lt__` :" #: howto/sorting.rst:284 msgid "" "However, note that ``<`` can fall back to using :meth:`__gt__` if :meth:" "`__lt__` is not implemented (see :func:`object.__lt__`)." msgstr "" "Notez toutefois que l'opérateur ``<`` peut utiliser la méthode :meth:" "`__gt__` si :meth:`__lt__` n'est pas implémentée ; voir :func:`object." "__lt__`." #: howto/sorting.rst:287 msgid "" "Key functions need not depend directly on the objects being sorted. A key " "function can also access external resources. For instance, if the student " "grades are stored in a dictionary, they can be used to sort a separate list " "of student names:" msgstr "" "Les fonctions clef n'ont pas besoin de dépendre directement des objets " "triés. Une fonction clef peut aussi accéder à des ressources externes. En " "l'occurrence, si les grades des étudiants sont stockés dans un dictionnaire, " "ils peuvent être utilisés pour trier une liste différentes de noms " "d'étudiants :" #~ msgid "The Old Way Using the *cmp* Parameter" #~ msgstr "La méthode traditionnelle d'utiliser le paramètre *cmp*" #~ msgid "" #~ "Many constructs given in this HOWTO assume Python 2.4 or later. Before " #~ "that, there was no :func:`sorted` builtin and :meth:`list.sort` took no " #~ "keyword arguments. Instead, all of the Py2.x versions supported a *cmp* " #~ "parameter to handle user specified comparison functions." #~ msgstr "" #~ "Plusieurs construction données dans ce guide se basent sur Python 2.4 ou " #~ "plus. Avant cela, il n'y avait pas la fonction :func:`sorted` et la " #~ "méthode :meth:`list.sort` ne prenait pas d'arguments nommés. À la place, " #~ "toutes les versions Python 2.x utilisaient un paramètre *cmp* pour " #~ "prendre en charge les fonctions de comparaisons définies par les " #~ "utilisateurs." #~ msgid "" #~ "In Py3.0, the *cmp* parameter was removed entirely (as part of a larger " #~ "effort to simplify and unify the language, eliminating the conflict " #~ "between rich comparisons and the :meth:`__cmp__` magic method)." #~ msgstr "" #~ "En Py3.0, le paramètre *cmp* à été supprimé complètement (dans le cadre " #~ "d'un effort plus général pour simplifier et unifier le langage, en " #~ "éliminant le conflit entre les comparaisons riches et la méthode magique :" #~ "meth:`__cmp__`)." #~ msgid "" #~ "In Py2.x, sort allowed an optional function which can be called for doing " #~ "the comparisons. That function should take two arguments to be compared " #~ "and then return a negative value for less-than, return zero if they are " #~ "equal, or return a positive value for greater-than. For example, we can " #~ "do:" #~ msgstr "" #~ "En Python 2.x, le tri permettait en paramètre une fonction optionnelle " #~ "qui peut être appelée pour faire des comparaisons. Cette fonction devrait " #~ "prendre deux arguments à comparer pour renvoyer une valeur négative pour " #~ "inférieur-à, renvoyer zéro si ils sont égaux, ou renvoyer une valeur " #~ "positive pour supérieur-à. Par exemple, nous pouvons faire :" #~ msgid "Or you can reverse the order of comparison with:" #~ msgstr "Ou nous pouvons inverser l'ordre de comparaison avec :" #~ msgid "" #~ "When porting code from Python 2.x to 3.x, the situation can arise when " #~ "you have the user supplying a comparison function and you need to convert " #~ "that to a key function. The following wrapper makes that easy to do:" #~ msgstr "" #~ "En portant du code depuis Python 2.X vers 3.x, des problèmes peuvent " #~ "survenir quand des utilisateurs fournissent une fonction de comparaison " #~ "et qu'il faut convertir cette fonction en une fonction-clef. La fonction " #~ "d'encapsulation suivante rend cela plus facile à faire :" #~ msgid "To convert to a key function, just wrap the old comparison function:" #~ msgstr "" #~ "Pour convertir une fonction clef, ils suffit d'encapsuler l'ancienne " #~ "fonction de comparaison :" #~ msgid "" #~ "In Python 3.2, the :func:`functools.cmp_to_key` function was added to " #~ "the :mod:`functools` module in the standard library." #~ msgstr "" #~ "En Python 3.2, la fonction :func:`functools.cmp_to_key` à été ajoutée au " #~ "module :mod:`functools` dans la librairie standard."