给定两个字典,我想看看它们的交集和差异,并对与唯一元素相交并执行g的元素执行f函数,这就是我找出d1和d2是两个字典的唯一和相交元素的方法,如何将d_intersection和d_difference作为字典打印在元组中?输出应该看起来像这样({相交的键,值},{差异的键,值}),例如:
d1 = {1:30, 2:20, 3:30, 5:80}
d2 = {1:40, 2:50, 3:60, 4:70, 6:90}
输出应为 ({1: 70, 2: 70, 3: 90}, {4: 70, 5: 80, 6: 90})
dic = {}
d_intersect = set(d1) & set(d2)
d_difference = set(d1) ^ set(d2)
for i in d_intersect:
dic.update({i : f(d1[i],d2[i])})
for j in d_difference:
dic.update({j : g(d1[j],d2[j])})
有人可以告诉我我哪里出了问题,为什么我的代码给出了关键错误4?
尽管可能存在更有效的方法,但这是一种方法。
d1 = {1:30, 2:20, 3:30, 5:80}
d2 = {1:40, 2:50, 3:60, 4:70, 6:90}
d_intersect = {} # Keys that appear in both dictionaries.
d_difference = {} # Unique keys that appear in only one dictionary.
# Get all keys from both dictionaries.
# Convert it into a set so that we don't loop through duplicate keys.
all_keys = set(d1.keys() + d2.keys()) # Python2.7
#all_keys = set(list(d1.keys()) + list(d2.keys())) # Python3.3
for key in all_keys:
if key in d1 and key in d2:
# If the key appears in both dictionaries, add both values
# together and place it in intersect.
d_intersect[key] = d1[key] + d2[key]
else:
# Otherwise find out the dictionary it comes from and place
# it in difference.
if key in d1:
d_difference[key] = d1[key]
else:
d_difference[key] = d2[key]
输出:
{1:70,2:70,3:90}
{4:70,5:80,6:90}
问题内容: 我正在研究一个反向索引的搜索程序。索引本身是一个字典,其键是术语,其值本身是短文档的字典,ID号是键,其文本内容是值。 为了对两个词执行“与”搜索,因此我需要与他们的发布列表(字典)相交。在Python中有什么明确的方法(不一定太聪明)?我首先尝试了以下方法: 问题答案: 在Python中,您可以使用运算符来计算集合的交集,而字典键是类似于集合的对象(在Python 3中): 在Pyt
问题内容: 我有以下两个玩具字典 我想得到一个唯一的字典,在其中我将第二个字典值堆叠在第一个字典之后,并放在相同的方括号内。 我尝试了以下代码 但是我获得的输出在每个键的列表中有两个列表,即 而我想获得 如何使用一行或两行代码来实现? 问题答案: 您几乎拥有了它,而是使用了附加两个列表的方法:
我有两个矩形,每个矩形有4个值: 左侧位置< code>X、顶部位置< code>Y、宽度< code>W和高度< code>H: 矩形不旋转,如下所示: 判断两个矩形的交集是否为空的最佳解是什么?
问题 怎样在两个字典中寻寻找相同点(比如相同的键、相同的值等等)? 解决方案 考虑下面两个字典: a = { 'x' : 1, 'y' : 2, 'z' : 3 } b = { 'w' : 10, 'x' : 11, 'y' : 2 } 为了寻找两个字典的相同点,可以简单的在两字典的 keys() 或者 items() 方法返回结果上执行集合操作。
问题内容: 我有两个字典。我需要找到两者之间的区别,这应该给我关键和价值。 我已经搜索并找到了一些插件/软件包,例如datadiff,dictdiff-master,但是当我在Python 2.7中尝试时,它说没有定义这样的模块。 我在这里用套装。 输出>>> set([[‘SCD-3547’,’SCD-3456’]) 我只有钥匙,我什至需要获取值。 问题答案: 使用字典理解来尝试以下代码段: 在
问题内容: 我需要将每个键的值相乘,然后将所有值加在一起以打印一个数字。我知道这可能超级简单,但我被卡住了 在我看来,我可以通过以下方式解决此问题: 但是那样的事情是行不通的:) 问题答案: 如果需要个人,可以使用dict理解: 或直接求和: