Maison >développement back-end >Tutoriel Python >Comment trier correctement les chaînes contenant des nombres ?
Comment trier correctement les chaînes contenant des chiffres
Le tri des chaînes contenant des nombres peut être difficile. La méthode sort() par défaut traite chaque caractère comme sa propre entité, ce qui entraîne un classement incorrect. Pour trier correctement ces chaînes, une approche plus sophistiquée est nécessaire.
Une méthode efficace est le tri humain, qui utilise des expressions régulières pour extraire les composants numériques des chaînes. Cette technique permet de trier les nombres indépendamment des parties alphabétiques.
Pour mettre en œuvre le tri humain, suivez ces étapes :
Exemple :
import re def atoi(text): return int(text) if text.isdigit() else text def natural_keys(text): return [ atoi(c) for c in re.split(r'(\d+)', text) ] alist = [ "something1", "something12", "something17", "something2", "something25", "something29"] alist.sort(key=natural_keys) print(alist)
Sortie :
['something1', 'something2', 'something12', 'something17', 'something25', 'something29']
Cette approche trie avec précision les chaînes en considérant à la fois les parties alphabétiques et numériques.
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!