Trier un tableau de chaînes par leurs valeurs entières
Disons que j'ai un tableau non trié de 1 à 10, comme illustré ci-dessous...
a = ["3", "5", "8", "4", "1", "2", "9", "10", "7", "6"]
Si j'utilise la méthode de tri sur ce tableau, il revient cette...
a.sort = ["1", "10", "2", "3", "4", "5", "6", "7", "8", "9"]
Comme vous pouvez le voir, le 10, apparaît avant le 2, ce qui est incorrect. Comment puis-je trier ces chiffres, alors que 10 s'affiche correctement?
EDIT: Salut les gars, merci à vous tous pour vos réponses. Je dois expliquer mon problème un peu mieux. Le tableau j'ai besoin de trier les est pour un e-commerce de la liste de prix. Ainsi, le tableau s'affiche comme suit...
a = ["0-10", "11-20", "21-30", "31-40" etc.]
Afin que les chaînes ne peuvent pas être convertis en nombres entiers. J'aurais dû mettre cette quand j'ai écrit la question. Je ne pense pas qu'il y aurait beaucoup de différence dans le correctif. Mon erreur, je m'excuse pour avoir fait de cette hypothèse! Comment bien puis-je trier ce tableau? Merci!
source d'informationauteur tob88
Vous devez vous connecter pour publier un commentaire.
Je vais jeter une autre méthode de là-bas, car c'est le chemin le plus court je pense
En tant que mise à jour de votre question stipule:
même geekier:
Si vous convertissez toutes les chaînes de caractères en nombres entiers à l'avance, il doit fonctionner comme prévu:
La raison de ce comportement est que vous avez un tableau de chaînes de caractères et de la sorte qui est appliqué est basé sur des chaînes. Pour obtenir la bonne, numérique, de tri, vous devez convertir les chaînes de chiffres ou de les garder comme des nombres en premier lieu. Est-il une raison que votre tableau est en train de se remplir avec des chaînes de caractères comme ceci:
Plutôt que des chiffres comme ceci:
?
Le moyen bon marché serait à zéro de remplissage sur la gauche et faire tous les nombres à 2 chiffres.