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
Mary-Kate Olsenoriginal
2024-12-20 09:50:101036parcourir

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]

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

list1.sort()

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)

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!

Déclaration:
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