【发布时间】:2018-06-23 02:04:37
【问题描述】:
我已经很久没有使用 python 并且有点生疏了,但是对于第一个问题,我正在使用字典并且需要将其相交以返回键和值。所以例如,我正在输入
a = {1:'a1', 2.5:'a2', 4:'a3'}
b = {1:'a1', 3:'a2', 5:'a4'}
如果我输入c = intersect(a,b),我希望它返回{1:'a1'},但我只返回{'a1'}。
到目前为止我的代码是:
def intersect(a, b):
for i in a:
if j in b:
if a[i]==b[i]:
return ({i})
else:
return {}
【问题讨论】:
-
对不起,我的意思是 {1:'a1'}(笔记本电脑正在自动更正),它在 a 和 b 中。
-
那么
{k: v for (k, v) in a.items() if k in b}? -
如果值不匹配怎么办?
-
您的
intersect代码测试j但从不分配任何东西。 -
迭代每个字典的方式只迭代键,而不是值。要访问这些值,请使用
dict.items()或dict.values()。
标签: python dictionary set-intersection