L'approche la plus répandue pour obtenir une collection unique d'objets est d'utiliser un set
. Les ensembles sont non ordonnée collections distinctes des objets. Pour créer un jeu à partir de n'importe quel itérable, vous pouvez tout simplement passer à la bâtie-en set()
fonction. Si plus tard vous avez besoin d'une vraie liste de nouveau, vous pouvez même passer l'ensemble de l' list()
fonction.
L'exemple suivant devrait couvrir ce que vous essayez de faire:
>>> t = [1, 2, 3, 1, 2, 5, 6, 7, 8]
>>> t
[1, 2, 3, 1, 2, 5, 6, 7, 8]
>>> list(set(t))
[1, 2, 3, 5, 6, 7, 8]
>>> s = [1, 2, 3]
>>> list(set(t) - set(s))
[8, 5, 6, 7]
Comme vous pouvez le voir dans l'exemple, la commande d'origine ne l'est pas. Comme mentionné ci-dessus, les jeux eux-mêmes sont des collections non triées, de sorte que la commande est perdu. Lors de la conversion d'un retour à une liste, un ordre arbitraire est créé.
Si l'ordre est important pour vous, alors vous devrez utiliser un autre mécanisme. Cette question couvre ce sujet plus en détail.