Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 比较两本词典的词典理解_Python - Fatal编程技术网

Python 比较两本词典的词典理解

Python 比较两本词典的词典理解,python,Python,如何使用与列表理解类似的方式,使用词典理解来比较两个不同的词典。例如,假设: dict1 = {'a': 1, 'b': 2, 'c': 3} dict2 = {'a': 3, 'b': 10, 'c': 4} #create another dict which contains key-(value1 x value2) dict3 = {'a': 3, 'b': 20, 'c': 12} 这包括检查两个字典中都存在哪些键,只对这些项进行乘法。或者,您可以交换dict1和dict2以获得

如何使用与列表理解类似的方式,使用词典理解来比较两个不同的词典。例如,假设:

dict1 = {'a': 1, 'b': 2, 'c': 3}
dict2 = {'a': 3, 'b': 10, 'c': 4}

#create another dict which contains key-(value1 x value2)
dict3 = {'a': 3, 'b': 20, 'c': 12}

这包括检查两个字典中都存在哪些键,只对这些项进行乘法。或者,您可以交换
dict1
dict2
以获得相同的效果。

假设所有键都是共享的:

>>> dict1 = {'a': 1, 'b':  2, 'c': 3}
>>> dict2 = {'a': 3, 'b': 10, 'c': 4}
>>> {k: dict1[k] * dict2[k] for k in dict1}
{'a': 3, 'c': 12, 'b': 20}
如果密钥未共享:

>>> dict1 = {'a': 1, 'b':  2, 'c': 3}
>>> dict2 = {'a': 3, 'b': 10, 'd': 4} # no 'c' key
>>> {k: dict1[k] * dict2[k] for k in dict1 if k in dict2}
{'a': 3, 'b': 20}

创建键的交点,然后访问两个字典中的值:

{k: dict1[k] * dict2[k] for k in dict1.viewkeys() & dict2}
这将使用充当集合的集合(并且
创建集合交集)

在Python 3中,您可以通过默认方法获得双视图:

{k: dict1[k] * dict2[k] for k in dict1.keys() & dict2}

通过使用键集交集,您可以确保只获得出现在两个字典中的键。

…通过编写字典理解?
{k: dict1[k] * dict2[k] for k in dict1.keys() & dict2}