d = {'得分':4, '团队':{'黄色':11,'蓝':4} }
如何获取字典,并将每个整数转换为浮点数?递归地,对于每个值最大深度。
答案 0 :(得分:4)
def float_dict(d):
new_dict = {}
for k,v in d.iteritems():
if type(v) == dict:
new_dict[k] = float_dict(v)
else:
new_dict[k] = float(v)
return new_dict
>>> d = { 'scores': 4, 'teams': { 'yellow': 11, 'blue': 4 } }
>>> print float_dict(d)
{'scores': 4.0, 'teams': {'blue': 4.0, 'yellow': 11.0}}
答案 1 :(得分:0)
def to_float(my_dict):
for i in my_dict:
if type(my_dict[i]) == dict:
my_dict[i] = to_float(my_dict[i])
elif type(my_dict[i]) == int:
my_dict[i] = float(my_dict[i])
return my_dict
答案 2 :(得分:0)
defun rec-func (dictionary &optional (current 0))
if dictionary[current] == dict:
rec-func (dictionary[current], 0)
else:
dictionary[current] = float(dictionary[current])
rec-func (dictionary current+1)
这是一个递归函数,但它是一个迭代过程,它是伪代码。 另外,不要忘记进行一些有条件的检查,看看你是否已经到了最后。 可能不是最好的解决方案,我甚至没有测试过它。
嗯,问题实际上是获得字典的特定元素,但我认为我的功能应该有用......我希望。
编辑:哎呀,没有正确缩进,不知道如何做到这一点。
编辑(santa4nt):修正了它。
答案 3 :(得分:0)
>>> d = { 'scores': 4, 'teams': { 'yellow': 11, 'blue': 4 } }
>>> import pickle
>>> pickle.loads(pickle.dumps(d).replace("\nI","\nF"))
{'scores': 4.0, 'teams': {'blue': 4.0, 'yellow': 11.0}}
note pickle
是递归的:)