Définir le tri ?
Comme on le sait, l'ordre des éléments dans l'ensemble n'est pas pris en compte. Alors est-il logique de parler d'ensembles de tri en Python 3 ? ! (C'est pourquoi il y a un point d'interrogation dans le titre)
Pour retrouver rapidement un élément dans un ensemble, il est souhaitable de les stocker en mémoire sous une forme ordonnée.
Regardons quelques exemples. Qu'advient-il des éléments de différents types de données dans le même ensemble ? Ces éléments ne doivent pas être triés. Si nous imprimons des éléments à l'aide de la commande print()
, ils seront affichés comme ceci :
a = {0, 1, 12, "b", "ab", 3, 2, "a"}
print(a) # {0, 1, 2, 3, 'a', 12, 'b', 'ab'}
Dans ce cas, des valeurs non triées sont affichées. Si vous répétez le lancement, l'ordre de sortie peut être différent. Mais ce n'est que si des éléments de types différents sont mélangés.
Essayons d'afficher des données d'un type (par exemple, uniquement des nombres) :
un = {0, 1, 12, 3, 2}
imprimer(a) # {0, 1, 2, 3, 12}
Tous les éléments sont affichés dans l'ordre. Essayons de le convertir en liste :
un = {0, 1, 12, 3, 2}
b = liste(a)
print(b) # [0, 1, 2, 3, 12]
De même, les éléments triés par ordre croissant étaient écrits dans la liste.
Il s'avère que les éléments sont stockés en mémoire sous une forme ordonnée s'ils sont du même type. Mais mieux vaut ne pas compter dessus, les algorithmes Python peuvent changer.
Si vous avez besoin d'obtenir une liste triée à partir d'un ensemble, il est préférable d'utiliser le sort
(< code>sorted) fonction pour être sûr ). Les éléments seront exactement triés. Votre code sera compréhensible pour les autres.