Récemment, j'ai remarqué que lorsque je convertissais un fichier list
a set
l'ordre des éléments est modifié et est trié par caractère.
Prenons cet exemple :
x=[1,2,20,6,210]
print x
# [1, 2, 20, 6, 210] # the order is same as initial order
set(x)
# set([1, 2, 20, 210, 6]) # in the set(x) output order is sorted
Mes questions sont -
- Pourquoi cela se produit-il ?
- Comment faire des opérations de set (notamment Set Difference) sans perdre l'ordre initial ?
149 votes
@KarlKnechtel - Oui "l'ordre est un concept sans signification pour les ensembles...en mathématiques" mais j'ai des problèmes du monde réel :)
1 votes
Sur CPython 3.6+
unique = list(dict.fromkeys([1, 2, 1]).keys())
. Cela fonctionne parce quedict
s préserver l'ordre d'insertion maintenant.