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!