给出一个非常复杂的dict dict_a ,即一些键对应于简单值(level- 1 ),但其他许多对应于另一个dict(level- 名词的)。
我的问题是如何将其所有值(无论是 1 还是level- n )设置为单个值,例如100。
例如:
a = 10
b = {1: 11, 2: 22, 3{1: 13, 2: {4: 33}}}
c = {1: a, 2: b}
如何将dict c的值设置为0?
答案 0 :(得分:3)
简单的递归函数应该可以工作:
def setdictvalto(d, value):
for k in d:
if isinstance(d[k], dict):
setdictvalto(d[k], value)
else:
d[k] = value
演示:
>>> setdictvalto(c, 100)
>>> c
{1: 100, 2: {1: 100, 2: 100, 3: {1: 100, 2: {4: 100}}}}
答案 1 :(得分:1)
def setZeroes(d):
for key, value in d.items():
if isinstance(value, dict):
setZeroes(value)
else:
d[key] = 0
>>> c
{1: 10, 2: {1: 11, 2: 22, 3: {1: 13, 2: {4: 33}}}}
>>> setZeroes(c)
>>> c
{1: 0, 2: {1: 0, 2: 0, 3: {1: 0, 2: {4: 0}}}}