Feuille de triche de tri Python

Le contenu de Trier COMMENT FAIRE - Document Python 3.5.1 et des conseils supplémentaires.

Fonction de tri

list.sort()

>>> a = [3, 0, 5, 1]
>>> a.sort()
>>> a
[0, 1, 3, 5]
>>> print(a.sort())  #Il n'y a pas de valeur de retour
None

sorted(list)

--Retourne le résultat du tri de la liste.

>>> a = [3, 0, 5, 1]
>>> sorted(a)
[0, 1, 3, 5]
>>> a  #La liste d'origine reste inchangée
[3, 0, 5, 1]
>>> sorted(iter([3, 0, 5, 1]))  #Peut être utilisé pour d'autres que des listes
[0, 1, 3, 5]

Tri inversé

>>> a = [3, 0, 5, 1]
>>> sorted(a, reverse=True)
[5, 3, 1, 0]

Spécifiez la clé de tri

--Spécifiez une fonction ou une expression lambda dans key.

>>> a = ["c", "aaa", "Bb"]
>>> sorted(a, key=lambda x: x.lower())
['aaa', 'Bb', 'c']
>>> sorted(a, key=str.lower)
['aaa', 'Bb', 'c']
>>> sorted(a, key=len)
['c', 'Bb', 'aaa']

Trier une liste avec des dictionnaires, des listes et des tapples comme éléments

--Par défaut, les éléments sont comparés dans l'ordre.

python


>>> a = [("b", 3), ("b", 1), ("a", 1), ("a", 2), ("c", 2)]
>>> sorted(a)
[('a', 1), ('a', 2), ('b', 1), ('b', 3), ('c', 2)]

python


>>> a = [{"key1": 3}, {"key1": 1}]
>>> from operator import itemgetter
>>> sorted(a, key=itemgetter("key1"))
[{'key1': 1}, {'key1': 3}]

Trier une liste avec des classes comme éléments

python


>>> from datetime import date
>>> a = [date(2016, 1, 1), date(2015, 12, 1)]
>>> from operator import attrgetter
>>> sorted(a, key=attrgetter("month"))
[datetime.date(2016, 1, 1), datetime.date(2015, 12, 1)]

Tri composite

python


>>> a = [("b", 3), ("b", 1), ("a", 1), ("a", 2), ("c", 2)]
>>> b = sorted(a, key=itemgetter(1), reverse=True)
>>> sorted(b, key=itemgetter(0))
[('a', 2), ('a', 1), ('b', 3), ('b', 1), ('c', 2)]

--Itemgetter et attrgetter peuvent spécifier plusieurs clés à la fois, utilisez donc ceci si les ordres décroissant et croissant sont les mêmes pour toutes les clés.

python


>>> sorted(a, key=itemgetter(0, 1))
[('a', 1), ('a', 2), ('b', 1), ('b', 3), ('c', 2)]

Trier s'il en contient Aucun

>>> a = [3, 0, None, 5, 1]
>>> sorted(a)  #Le tri échoue normalement
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unorderable types: NoneType() < int()
>>> sorted(a, key=lambda x: (x is None, x))  #Aucun à la fin
[0, 1, 3, 5, None]
>>> sorted(a, key=lambda x: (x is not None, x))  #Aucun au début
[None, 0, 1, 3, 5]

Python sort list with None at the end - Stack Overflow

Rendre les classes triables

class P(object):
    def __init__(self, gender, age):
        self.gender = gender
        self.age = age
    def __repr__(self):
        return "{:s}{:d}".format(self.gender, self.age)
    def __lt__(self, other):
        return (self.gender, self.age) < (other.gender, other.age)

a = [P("F", 30), P("F", 20), P("M", 20), P("M", 40), P("F", 10)]
print(sorted(a))

Fusionner plusieurs itérables triés

-Utiliser heapq.merge.

>>> import heapq
>>> list(heapq.merge([1, 3, 4, 7], [2, 5], [6]))
[1, 2, 3, 4, 5, 6, 7]

Trier de gros fichiers texte

Recommended Posts

Feuille de triche de tri Python
Fiche technique PySpark [Python]
[Python3] Entrée standard [Cheet sheet]
[Python] Trier
Python #sort
Fiche technique du didacticiel Python Django
Apache Beam Cheet Sheet [Python]
Aide-mémoire au curry
Aide-mémoire SQLite3
feuille de triche pyenv
Fiche de triche AtCoder en python (pour moi-même)
Fiche technique de l'accès aux données Blender Python Mesh
Feuille de calcul du modélisateur d'optimisation mathématique (PuLP) (Python)
feuille de triche de commande conda
Aide-mémoire PIL / Pillow
Tri à bulles en Python
Tri par classe Python
Aide-mémoire de l'API Spark
[Mémo] Tri de liste Python3
[Mise à jour] Aide-mémoire de la syntaxe Python pour la boutique Java
Tri personnalisé en Python3
[Python] Trier les types de collection
Feuilles de triche PDF basées sur Python
feuille de triche de fichier de réglage tox
Trier les importations de modules Python par ordre alphabétique
Trier naturellement le chemin en Python
Ordre de tri des dict de base Python
Trier de gros fichiers avec python
Aide-mémoire sur les pièces jointes de l'API Slack
Tri décroissant avec mongodb en python
Les débutants en Python organisent des sortes de bulles
feuille de triche de l'algorithme scikit learn
Trier par date en python
À propos de Python sort () et reverse ()
Aide-mémoire personnel Google Test / Mock
Aide-mémoire sur le style de livraison continue (CPS)
[Python] Tri itérable selon plusieurs conditions
Python
Trier les gros fichiers texte en Python
[Python] Tri Starlin à une ligne avec 50 caractères
Trier
Lors de la spécification de plusieurs clés dans le tri python
Nouveautés de Python 3.9 (2) - Tri des graphes non circulés dirigés en Python
Aide-mémoire sur le curry [liste de la version de l'exemple de description]
[Réinvention des roues] Tri de tournois à propulsion humaine [Python]
Mise en œuvre du tri Stuge dans Python 3 (tri à bulles et tri rapide)
Fiche compatible avec le code R pour les utilisateurs de Python