La documentation ne le garantit pas. Y a-t-il un autre endroit où cela est documenté?
Je suppose que cela pourrait être stable puisque la méthode de tri sur les listes est garantie d'être stable (Notes 9e point: "À partir de Python 2.3, la méthode sort () est garantie d'être stable"), et trié est fonctionnellement similaire. Cependant, je ne suis pas en mesure de trouver une source définitive qui le dise.
Objectif: je dois trier en fonction d'une clé primaire et également d'une clé secondaire dans les cas où la clé primaire est égale dans les deux enregistrements. Si sorted () est garanti pour être stable, je peux trier sur la clé secondaire, puis trier sur la clé primaire et obtenir le résultat dont j'ai besoin.
PS: Pour éviter toute confusion, j'utilise stable dans le sens de "un tri est stable s'il garantit de ne pas changer l'ordre relatif des éléments qui se comparent égaux".
sorted([(1, 2), (1, 1)])
renvoie[(1, 1), (1, 2)]
au lieu de renvoyer l'entrée d'origine dans la même séquence / ordre. La garantie de stabilité ne devrait-elle pas signifier qu'il devrait renvoyer l'[(1, 2), (1, 1)]
entrée d' origine ? Dans ce cas, vous devez être explicite et diresorted([(1, 2), (1, 1)], key=lambda t: t[0])