你在问这两本词典的交集。在
使用内置类型set
您可以为此使用内置类型set,它实现了intersection()函数。在
可以将列表转换为如下集合:set(my_list)
因此,为了找到两个字典的键之间的交集,可以将这些键转换成集合并找到交集。在
要获取包含字典键的列表:
^{pr2}$
所以,要找到两个dict键的交集:set(dict_one.keys()).intersection(set(dict_two.keys()))
在您的示例中,这将返回集合{'12', '14'}。在
以上代码的可读性更强:keys_one = set(dict_one.keys())
keys_two = set(dict_one.keys())
same_keys = keys_one.intersection(keys_two)
# To get a list of the keys:
result = list(same_keys)
使用匿名函数(lambda函数)和列表理解
另一个解决这个问题的简单方法是使用lambda函数。在
我把这个放在这里以防万一你想知道。可能不是最有效的方法!在same_keys = lambda first,second: [key1 for key1 in first.keys() if key1 in second.keys()]
因此,为了得到结果:
result = same_keys(dict_one,dict_two)
以上两个方法中的任何一个都将为您提供两个字典所共有的键。在
只需在其上循环并按您的意愿打印值:for key in result:
print('{},{}'.format(dict_one[key], dict_two[key]))