将字符串转换为从 Grass 解析的 python 字典中的数字

Converting strings to number inside python dictionary parsed from Grass

解析完 Python 中的 Grass GIS 模块后,我正尝试在下一步的栅格计算中使用该词典。但是解析字典中的所有内容都作为字符串传递。

# 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 提示可以让我在保存已解析的字典时轻松地做到这一点?

如果您想更改词典,请使用 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}