我一直试图绕过这个带有两个dict {}的函数,并得到一个键值Value的公共值,而这个值又被传递给一个函数f(),该函数将被定义出来功能:
我试过这个:
def dicts_interdiff( d1, d2 ) :
dict1 = dict(filter(lambda (k,v) : k in d2 and d2[k] == v, d1.items()))
dict2 = dict(filter(lambda (k,v) : k not in d1 and d1[k] != v, d2.items()))
return dict1, dict2
我把这个测试传给了它:
d1 = {'1':10, '2':20, '3':30, '4':40}
d2 = {'1':10, '4':40, '5':50, '6':60}
result = dicts_interdiff(d1,d2)
print(result)
这是输出:
({}, {'1': 10, '3': 30, '2': 20, '5': 50, '4': 40, '6': 60})
有人能指出我正确的方向吗?谢谢
答案 0 :(得分:0)
我不知道您使用k not in d1 and d1[k] != v
时收到错误消息的原因。
def dicts_interdiff( d1, d2 ) :
dict1 = dict(filter(lambda (k,v) : k in d2 and d2[k] == v, d1.items()))
dict2 = dict(filter(lambda (k,v) : k not in d1 or d1[k] != v, d2.items()))
return dict1, dict2
并使用你的d1,d2将返回({'1':10,'4':40},{'5':50,'6':60})