En conservant l'ordre lors de l'utilisation de Python de la différence

Je suis en train de faire un jeu de différence de fonctionnement en Python:

from sets import Set
from mongokit import ObjectId
x = [ObjectId("4f7aba8a43f1e51544000006"), ObjectId("4f7abaa043f1e51544000007"), ObjectId("4f7ac02543f1e51a44000001")]
y = [ObjectId("4f7acde943f1e51fb6000003")]
print list(Set(x).difference(Set(y)))

J'obtiens:

[ObjectId('4f7abaa043f1e51544000007'), ObjectId('4f7ac02543f1e51a44000001'), ObjectId('4f7aba8a43f1e51544000006')]

J'ai besoin d'obtenir le premier élément pour la prochaine opération qui est important. Comment puis-je conserver la liste x dans leur format d'origine?

Les ensembles sont par définition non ordonnée.
Et vous ne devriez jamais utiliser le sets module. Utilisez le builtin set type.
Le ensembles.Set type est un choix raisonnable pour quelqu'un qui a besoin de compatibilité avec les anciennes versions de Python. Le haut-set type a été modélisé d'après ensembles.Set -- elles à la fois beau travail pour la plupart des applications (bien que la version intégrée est plus rapide).
Notez que les "anciens" signifie "Python 2.3 ou avant", qui est tout beaucoup plus.
Mais pas aussi vieux que l'un de nous

OriginalL'auteur Avinash | 2012-04-04