-3

这是我的代码到目前为止的样子:

给定字典 d1 和 d2,创建一个具有以下属性的新字典:对于 d1 中的每个条目 (a, b),如果 d2 中有条目 (b, c),则条目 (a, c) 应该是添加到新字典中。例如,如果 d1 是 {2:3, 8:19, 6:4, 5:12} 并且 d2 是 {2:5, 4:3, 3:9},那么新字典应该是 {2:9 , 6:3} 将新字典与变量 d3 关联

d3 ={} 
for i in d1:
    for i in d2:
        if d1.get(i,default=none) in d2:
            d3[d1] = d2.get(i,default = None)
4

2 回答 2

1

Python 可以很好地表达这一点。太糟糕了,这是作业,您可能无法使用 dict 理解或您的“老师”给您的任何其他限制

>>> d1 = {2:3, 8:19, 6:4, 5:12}
>>> d2 = {2:5, 4:3, 3:9}
>>> d3 = {a:d2[b] for a, b in d1.items() if b in d2}
>>> d3
{2: 9, 6: 3}

对于 Python2.5 或 Python2.6,使用生成器表达式dict()

d3 = dict((a, d2[b]) for a, b in d1.items() if b in d2)

对于 2.4,请参阅@KP 的答案

于 2013-07-19T01:20:25.853 回答
0

或者,如果你喜欢单行:

d3 = dict([(k, d2[v]) for k, v in d1.items() if v in d2])
于 2013-07-19T01:20:57.437 回答