Bonjour,
Je me casse la tête avec la fonction sort() depuis un moment et je cherche à comprendre.
Pour résumé, je dois trier plusieurs lignes ayant plusieurs colonnes (nombres réels) séparées par des espaces. Le tri s'effectue uniquement sur la valeur de la 1ère colonne.
Exemple ultra simplifié de mon fichier source :
Et je veux obtenir ceci :9.75 11.4133
10.75 12.4133
10.875 12.5383
11 12.6633 12.4472
9.875 11.5383 11.3222
Facile ?9.75 11.4133
9.875 11.5383 11.3222
10.75 12.4133
10.875 12.5383
11 12.6633 12.4472
Je lis mon fichier, je le stocke dans une liste et j'appelle la fonction sort()... seulement voilà ce que j'obtiens :
print("[DEBUG] -------- DATALIST avant tri : -----------------------\n")
print(dataListIR)
print("[DEBUG] -------- DATALIST apres le tri : -----------------------\n")
dataListIR.sort()
print(dataListIR)Et là, j'ai beau me creuser la tête, je ne comprends pas comment sort() se débrouille et comment m'en sort[ir].[DEBUG] -------- DATALIST avant tri : -----------------------
['9.75 11.4133 \n', '10.75 12.4133\n', '10.875 12.5383\n', '11 12.6633 12.4472\n', '9.875 11.5383 11.3222\n']
[DEBUG] -------- DATALIST apres le tri : -----------------------
['10.75 12.4133\n', '10.875 12.5383\n', '11 12.6633 12.4472\n', '9.75 11.4133 \n', '9.875 11.5383 11.3222\n']
Je précise que j'avais déjà eu le même genre de cas sous bash, et que j'avais résolu le souci en forcant la variable d'environnement LC_ALL="C"... mais Python ne semble pas s'y intéresser.
Quelqu'un pourrait-il me guider un peu ? Merci
Amicalement,
Partager