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}