我正在研究一个问题,该问题需要在确定字典是否可逆的函数中指出该问题(对于出现在字典中的每个值,只有一个键映射到该值)。问题如下:
def is_invertible(adict):
inv_dict = make_inv_dict(adict)
return adict == inv_dict
def make_inv_dict(adict):
if len(adict) > 0:
key,val = adict.popitem()
adict = make_inv_dict(adict)
if val not in adict.values():
adict[key] = val
return adict
else:
return {}
当前,当假定为False
时,它将为{'a': 'b','b': 'e','c': 'f'}
返回True
。我确定make_inv_dict
函数中存在问题;仅仅是因为adict
在adict = make_inv_dict(adict)
中不是合适的变量名吗?还是该函数返回错误结果的另一个原因?