Maison > développement back-end > Tutoriel Python > Comment trier numériquement une liste de chaînes en Python ?

Comment trier numériquement une liste de chaînes en Python ?

Mary-Kate Olsen
Libérer: 2024-12-20 09:50:10
original
1007 Les gens l'ont consulté

How to Numerically Sort a List of Strings in Python?

Tri numérique des listes de chaînes en Python

Tenter de trier numériquement une liste de chaînes en Python à l'aide de la fonction sort() peut entraîner des résultats inattendus. L'algorithme de tri par défaut des chaînes en Python est souvent alphabétique plutôt que numérique.

Pour trier numériquement une liste de chaînes, les chaînes doivent d'abord être converties en nombres entiers. Cependant, l'extrait de code fourni tente de convertir les chaînes en entiers mais n'utilise pas les valeurs converties pour le tri.

L'approche correcte consiste à convertir les chaînes en entiers à l'aide d'une compréhension de liste :

list1 = ["1", "10", "3", "22", "23", "4", "2", "200"]
list1 = [int(x) for x in list1]
Copier après la connexion

Une fois les chaînes converties en entiers, la liste peut être triée à l'aide de sort() function :

list1.sort()
Copier après la connexion

Cela entraînera le tri de la liste par ordre numérique croissant.

Alternativement, s'il est nécessaire de conserver les éléments sous forme de chaînes, une fonction clé peut être utilisée pour préciser les critères de comparaison. La fonction key est appelée sur chaque élément avant qu'il ne soit comparé, et les valeurs de retour sont utilisées pour la comparaison au lieu des éléments eux-mêmes :

list1.sort(key=int)
Copier après la connexion

Cela triera également la liste numériquement, mais les éléments resteront tels quels cordes.

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!

source:php.cn
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