Я хочу преобразовать числа, которые идут с буквами, и преобразовать их в зависимости от значения, которое указывается каждой буквой. Как число 1M должно быть прочитано как 1000000, а число 1K должно быть прочитано как 1000. Есть ли какой-то простой способ сделать это?Как преобразовать единицы СИ в номер с помощью python
ответ
Преобразование последнего символа в значение, например. M -> 1000000, k -> 1000. Multipy со значением и добавьте код для возможных ошибок синтаксического анализа.
(я специально не добавил код здесь, чтобы дать вам попробовать).
Мишель, мне просто нужно было знайте, нужно ли это делать, написав какой-то код или если была простая функция. Спасибо –
А, ок ... Я не знал, что из вопроса ... afaik нет функции, но в конце концов, это не так сложно написать. –
Тривиальным подход должен был бы использовать словарь, чтобы сохранить число нулей каждого преобразования будет использовать:
>>> number = {
... 'K': 3,
... 'M': 6
... }
>>>
>>> var = '5M'
>>> int(var[0] + ('0' * number[var[1]]))
5000000
>>> var = '2K'
>>> int(var[0] + ('0' * number[var[1]]))
2000
>>>
Это решение может или не может быть масштабируемым в зависимости от размера и сложности проекта.
Вы можете попробовать написать код, чтобы решить вашу проблему :) – blacksite
Я видел библиотеку [pint] (https://pint.readthedocs.io/en/0.7.2/), указанную в другом ответе несколько дней назад. Я не использовал его сам, но он может быть вам подходит. Поправьте меня если я ошибаюсь. – Tagc
Возможный дубликат [библиотеки Python для преобразования между префиксами SI-блока] (http://stackoverflow.com/questions/10969759/python-library-to-convert-between-si-unit-prefixes) – ThisSuitIsBlackNot