En Python, qu'est-ce qu'un moyen propre et élégant pour convertir des chaînes comme "1 374" ou "21 000 000" en valeurs int comme 1374 ou 21000000?Comment convertir une chaîne numérique avec des virgules "place-value" en un entier?
7
A
Répondre
9
Cela dépend vraiment de l'endroit où vous obtenez votre numéro.
Si le nombre que vous essayez de convertir provient d'une entrée utilisateur, utilisez locale.atoi()
. De cette façon, le nombre sera analysé d'une manière qui est compatible avec les paramètres de l'utilisateur et donc les attentes. En revanche, si vous lisez un fichier qui utilise toujours le même format, utilisez int("1,234".replace(",", ""))
ou int("1.234".replace(".", ""))
selon votre situation. Ce n'est pas seulement plus facile à lire et à déboguer, mais il n'est pas affecté par les paramètres régionaux de l'utilisateur, donc votre analyseur fonctionnera sur n'importe quel système.
4
locale.atoi()
, après avoir défini les paramètres régionaux appropriés.
2
int("1,374".replace(",",""))
2
>>> s="1,374"
>>> import locale
>>> locale.setlocale(locale.LC_NUMERIC, '')
'en_US.UTF-8'
>>> locale.atoi(s)
1374
Questions connexes
- 1. Comment convertir un nombre numérique en chaîne?
- 2. Convertir un entier en chaîne
- 3. Comment convertir un nombre entier en chaîne binaire en C#?
- 4. Comment convertir un entier en une chaîne dans GLib?
- 5. Convertir une chaîne en entier avec décimal en Python
- 6. Convertir un entier en une chaîne signée en Ruby
- 7. convertir chaîne de csv à une chaîne avec des espaces au lieu de virgules en php
- 8. Convertir GUID en chaîne en base décimale (alias un énorme entier délimité par des virgules, en base dix)
- 9. Comment convertir une chaîne numérique à 18 chiffres en BigInteger?
- 10. Comment convertir une chaîne hexadécimale en entier en Python?
- 11. Comment convertir une chaîne en entier en C#
- 12. Comment convertir une chaîne en nombre entier hexadécimal en Python?
- 13. Comment convertir une chaîne de nombres séparés par des virgules en un tableau d'entiers?
- 14. Comment convertir un entier en chaîne avec des zéros en tête dans Tcl?
- 15. Comment convertir une chaîne hexadécimale en entier signé?
- 16. Comment convertir un vecteur en une chaîne délimitée par des virgules
- 17. Comment convertir une chaîne en entier dans l'objectif C?
- 18. Comment utiliser Convert.ChangeType pour convertir une chaîne en numérique avec un séparateur de groupe?
- 19. Comment convertir une variable numérique à une chaîne dans Matlab
- 20. Comment convertir une chaîne en entier dans Oxygene
- 21. convertir la chaîne en entier en C++
- 22. Comment analyser une chaîne avec des espaces en nombre entier
- 23. Java bibliothèque pour convertir l'objet en numérique (entier, long etc ..)
- 24. nombre de convertir la chaîne en entier
- 25. Numéros avec des virgules en Javascript
- 26. convertir la chaîne de pointeur en entier
- 27. entier Convertir ENUM à chaîne
- 28. Comment convertir un entier en int?
- 29. Comment convertir un HTMLElement en une chaîne
- 30. Comment convertir un tableau numérique en (et afficher) une image?
+1 Cela vaut mieux que le simple remplacement des virgules avec vides-chaînes, parce que les virgules sont utilisés dans certains endroits comme séparateur décimal, alors que les périodes jouent le rôle de délimitation des milliers, des millions, etc. – Tarydon
dépend de ce que vous essayez d'analyser. Entrée de l'utilisateur? Ou un fichier avec un format fixe (disons un CSV que vous obtenez d'un système existant)? Pas le même. Voir ma réponse ci-dessous. – ibz