Maison >développement back-end >Tutoriel Python >Comment trier une liste de chaînes en fonction des valeurs entières correspondantes dans une autre liste ?
Étant donné deux listes, X contenant des chaînes et Y contenant des entiers, vous souhaitez trier X en fonction des valeurs correspondantes dans Y tout en préservant l'ordre d'origine des éléments avec la même valeur "clé". Explorez la solution optimisée suivante à l'aide des fonctions intégrées de Python :
[x for _, x in sorted(zip(Y, X))]
Exemple :
X = ["a", "b", "c", "d", "e", "f", "g", "h", "i"] Y = [ 0, 1, 1, 0, 1, 2, 2, 0, 1] Z = [x for _,x in sorted(zip(Y,X))] print(Z) # ["a", "d", "h", "b", "c", "e", "i", "f", "g"]
Explication :
Explication supplémentaire :
La fonction sorted() vous permet de spécifier une fonction clé qui détermine les critères de tri. Dans ce cas, nous utilisons key=lambda pair: pair[0] pour trier les tuples en fonction de leur premier élément. Cela trie efficacement X en fonction des valeurs correspondantes dans Y.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!