我try 使用同一词典中的键来扩展词典的值.换言之,我try 替换dic
个值(用另一个/可能扩展的集替换现有集).当值包含字典中的键时,会发生扩展.
输入:
dic = {
'10': {'01', '02'},
'11': {'03', '04'},
'20': {'05', '10'},
'21': {'06', '11'},
'30': {'07', '20'},
'40': {'08', '21', '30'},
'50': {'09', '40'}
}
预期输出:
{
'10': {'01', '02'},
'11': {'03', '04'},
'20': {'05', '01', '02'},
'21': {'06', '03', '04'},
'30': {'07', '05', '01', '02'},
'40': {'08', '06', '03', '04', '07', '05', '01', '02'},
'50': {'09', '08', '06', '03', '04', '07', '05', '01', '02'}
}
我试图创建一个递归函数...
def transform_dic(d):
def func(k):
v = d.get(k, k)
if v != k:
for e in v:
v = func(v)
return v
d2 = {}
for k, v in d.items():
d2[k] = {func(i) for i in v}
return d2
print(transform_dic(dic))
类型