Maison > développement back-end > Tutoriel Python > Comment trier numériquement les numéros de chaîne en Python ?

Comment trier numériquement les numéros de chaîne en Python ?

Susan Sarandon
Libérer: 2024-12-08 00:07:11
original
158 Les gens l'ont consulté

How to Sort String Numbers Numerically in Python?

Tri numérique des numéros de chaîne

Lorsque vous traitez une liste de chaînes qui représentent des valeurs numériques, les trier en fonction de leur valeur réelle peut sembler une tâche simple. Cependant, la fonction sort() par défaut en Python peut fournir des résultats inattendus.

Le problème survient parce que la fonction sort() compare les chaînes lexicographiquement, ce qui signifie qu'elle les trie par ordre alphabétique plutôt que numérique. Pour résoudre ce problème, il est crucial de convertir les chaînes en entiers réels avant d'effectuer le tri.

Considérez le code Python suivant :

list1 = ["1", "10", "3", "22", "23", "4", "2", "200"]
for item in list1:
    item = int(item)

list1.sort()
Copier après la connexion

Dans ce code, nous convertissons d'abord chaque chaîne du list en un entier en utilisant la fonction int(). Cependant, nous négligeons alors d’utiliser les valeurs entières converties dans le tri. En conséquence, la fonction compare les chaînes d'origine et produit le résultat suivant :

['1', '10', '2', '200', '22', '23', '3', '4']
Copier après la connexion

Pour trier la liste numériquement, nous devons incorporer les entiers convertis dans le tri, comme indiqué ci-dessous :

list1 = [int(x) for x in list1]
list1.sort()
Copier après la connexion

Cette fois, la fonction comparera correctement les valeurs entières et produira le résultat souhaité :

['1', '2', '3', '4', '10', '22', '23', '200']
Copier après la connexion
Copier après la connexion

Alternativement, si vous Si vous devez conserver les chaînes au lieu de les convertir en entiers, vous pouvez utiliser une fonction clé lors du tri. La fonction sort() vous permet de spécifier une fonction clé qui est appliquée à chaque élément avant sa comparaison. Cela vous permet de personnaliser les critères de comparaison.

Par exemple, pour trier numériquement la liste des chaînes à l'aide d'une fonction clé, vous pouvez utiliser le code suivant :

list1 = ["1", "10", "3", "22", "23", "4", "2", "200"]
list1.sort(key=int)
Copier après la connexion

Dans ce cas, la fonction clé int() est appliquée à chaque chaîne avant comparaison. La fonction convertit les chaînes en entiers et la fonction sort() compare les valeurs entières résultantes, produisant le même résultat souhaité :

['1', '2', '3', '4', '10', '22', '23', '200']
Copier après la connexion
Copier après la connexion

En comprenant comment la fonction sort() fonctionne en Python et en utilisant les fonctions clés si nécessaire, vous pouvez trier efficacement les listes de numéros de chaîne numériquement, quel que soit leur format d'origine.

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