dict没有提供直接求交集和差集的方法,可以通过set进行求值:
def dict_find_same_set(dict1, dict2):
dict1_set = set(dict1.items())
dict2_set = set(dict2.items())
same_set = dict1_set & dict2_set
return same_set
def dict_find_diff_set(dict1, dict2):
dict1_set = set(dict1.items())
dict2_set = set(dict2.items())
same_set = dict1_set & dict2_set
return (dict1_set - same_set, dict2_set - same_set)
def dict_filter_out_key_in_set(ori_dict, filter_set):
filter_dict = { }
for item in filter_set:
key = item[0]
filter_dict[key] = ori_dict[key]
return filter_dict
def main():
d1 = {
"a":1,
"b":2,
"c":3
}
d2 = {
"b":2,
"c":3,
"d":4
}
same_set = dict_find_same_set(d1, d2)
same_dict = dict_filter_out_key_in_set(d1, same_set)
print(same_dict)
(d1_diff_set, d2_diff_set) = dict_find_diff_set(d1, d2)
d1_diff = dict_filter_out_key_in_set(d1, d1_diff_set)
print(d1_diff)
if __name__ == "__main__":
main()
运行程序输出:
{'b': 2, 'c': 3}
{'a': 1}



