Преобразование строк в число внутри словаря Python, проанализированного из Grass
После анализа модулей ГИС Grass в Python я пытаюсь использовать этот словарь на следующем шаге вычисления растра. Но все из разобранного словаря передается в виде строк.
# original grass command used:
# r.stat= gscript.parse_command('r.info', flags = 'r', map='HC1015.5')
# here is dict output to reuse
r.stat={u'max': u'95.7933959960938', u'min': u'1.41131834257793'}
Чтобы иметь возможность использовать словарь, я хотел бы использовать ключи словаря напрямую, но их соответствующие значения должны быть преобразованы в числа с плавающей точкой.
Я взломал это следующим образом:
stat=r.stat.values()
r_max=float(stat[0]); r_min=float(stat[1])
Какие-нибудь советы по Python, как сделать это легко, пока я сохраняю разобранную версию?
1 ответ
Решение
Если вы хотите изменить используемый вами словарь Dict Comprehensions
stat={u'max': u'95.7933959960938', u'min': u'1.41131834257793'}
stat = {k: float(v) for k,v in stat.items()}
print(stat)
Выход
{'max': 95.7933959960938, 'min': 1.41131834257793}