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

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

Linda Hamilton
Libérer: 2024-12-04 20:32:17
original
441 Les gens l'ont consulté

How to Sort a List of Numerical Strings in Python?

Tri d'une liste de chaînes numériques

La fonction sort() de Python peut prêter à confusion lorsqu'il s'agit de chaînes représentant des nombres. Cet article explique pourquoi et présente des solutions pour trier ces listes numériquement.

Le problème :

Considérez l'extrait de code ci-dessous :

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

list1.sort()
print(list1)
Copier après la connexion

Ceci le code tente de convertir chaque chaîne de la liste en un entier, puis de trier la liste. Cependant, le résultat est incorrect :

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

La solution :

Le problème dans le code donné est que même si chaque chaîne est convertie en un entier dans la boucle , la boucle ne met pas à jour la liste d'origine. Pour résoudre ce problème, convertissez les chaînes en entiers et créez une nouvelle liste :

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

Utilisation d'une fonction clé :

Si vous devez conserver les chaînes au lieu de en les convertissant en entiers, vous pouvez utiliser le paramètre key dans la fonction sort() :

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

ou dans un seul line:

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

Dans les deux cas, la fonction int() est appelée comme clé sur chaque chaîne avant de la comparer, permettant de trier numériquement la liste.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal