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 ?

Comment trier une liste de chaînes en fonction des valeurs entières correspondantes dans une autre liste ?

Susan Sarandon
Libérer: 2024-12-31 16:00:20
original
300 Les gens l'ont consulté

How to Sort a List of Strings Based on Corresponding Integer Values in Another List?

Tri d'une liste à l'aide des valeurs correspondantes d'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"]
Copier après la connexion

Explication :

  1. zip(Y, X) crée une liste de tuples, chacun contenant un élément de Y et l'élément correspondant de X.
  2. sorted(zip(Y, X)) trie la liste des tuples en fonction du premier élément (la valeur de Y).
  3. [x pour _, x dans sorted(. ..)] crée une nouvelle liste en parcourant la liste triée de tuples, en supprimant le premier élément (_) et en ne conservant que le deuxième élément (x).

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal