Преобразование строк в число внутри словаря 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}
Другие вопросы по тегам