我需要比较两个字典与DIFFERENT键之间的值,并将结果放在第三个字典中。输入:
a={1:[0,0], 2:[1,0], 3:[1,2]}
b={4:[1,2], 5:[1,3]}
输出:我想要两个字典,它们都有从'b'复制的密钥。在所有情况下,我都想忽略条目'0'。第一个输出显示'a'中的键与b中的键具有完全相同的值。
c={4:3, 5:0}
第二个输出dict显示'a'中有多少个键有1个(且只有1个)值与b中的键相同。
d={4:[2], 5:[2,3]}
我尝试这样做:
c=dict.fromkeys(b.keys())
d=dict.fromkeys(b.keys())
for k, v in b.iteritems():
TST_s, TST_d= v[0], v[1]
for each, every in a.iteritems():
TRN_s, TRN_d= every[0], every[1]
if TST_s == TRN_s and TST_d==TRN_d:
c[k].append(each)
elif TST_s == TRN_s and TST_d!=TRN_d:
d[k].append(each)
elif TST_s!= TRN_s and TST_d==TRN_d:
d[k].append(each)
else:
pass
但我得到了
AttributeError: 'NoneType' object has no attribute 'append'
非常感谢任何帮助!
PS。我知道代码可以简化,但是在编程方面我不是很有才华,而且我还没有考虑'0',我想在稍后阶段删除它。目前我只是想让它产生输出......
答案 0 :(得分:2)
c [k]和d [k]为无,因为dict.fromkeys(b.keys())
返回{4:None, 5:None}