Как убрать точку разделителя тысяч из форматированных чисел

1

Как удалить разделитель точек из форматированных чисел? Я получаю список с веб-сайта, используя регулярное выражение:

a = [10.000, 20.000, 25.000]

Как я могу изменить их на a = [10000, 20000, 25000]? (Теперь они целые).

  • 0
    a = [int (x * 1000) для x в a]?
  • 0
    почему бы вам просто не умножить на 1000 каждый?
Показать ещё 1 комментарий
Теги:

4 ответа

8
Лучший ответ

Я предполагаю, что у вас есть строки, поскольку вы получили их с веб-сайта, сначала они должны быть текстовыми.

>>> a=["10.000","20.000","25.000"]
>>> [ i.replace(".","") for i in a ]
['10000', '20000', '25000']
  • 0
    Метод замены не работает для кортежей, я думаю. Что вы предлагаете для этого? Должен ли я скопировать значения в список?
  • 1
    По-разному. Поскольку вы перебираете кортежи и заменяете, это должно работать.
Показать ещё 1 комментарий
2

Если на вашем компьютере определен локаль, которая использует точку для разделителя тысяч, вы можете использовать locale.atoi:

import locale
locale.setlocale(locale.LC_ALL, 'en_DK.utf8')
a=['10.000','20.000','25.000']
a=map(locale.atoi,a)
print(a)
# [10000, 20000, 25000]

Чтобы узнать, какие локали установлены на вашем компьютере (по крайней мере, в unix), запустите

locale -a
2

Используйте замену как это:

mystring.replace('.', '')
0

По-моему, я бы удалил точки, прежде чем превращать их в числа. Вместо выполнения int(num_in_string) выполните следующее: int(num_in_string.replace('.', ''))

Ещё вопросы

Сообщество Overcoder
Наверх
Меню