用dict A值替换dict B中的键值

时间:2014-11-03 05:44:45

标签: python python-2.7 dictionary

我对这段代码感到有点困惑:这里是

def newval(A, B):
    for key in A:
        if key in B:
            B[key][1] = A[key][0]
            return B

由于某种原因,我的程序根本不会运行 基本上我希望它通过dict A,循环并在dict B中找到相同的键,然后用A来替换dict B键值。

4 个答案:

答案 0 :(得分:1)

您可以尝试使用此代码:

 def newval(A, B):
    print A
    print B
    for key in A:
       print key
       if key in B:
           print key
           B[key]=A[key]
            print B
       return B


A = {'asd':4, 'ad':32}
B = {'asd':5, 'asd':234}
b=newval(A,B)
print b

输出:

{'asd': 4}
{'asd': 4}

答案 1 :(得分:0)

尝试以下代码,

>>> A = {'foo':2, 'bar':3}
>>> B = {'foo':5, 'baram':3}
>>> for key in A:
    if key in B:
        B[key]=A[key]


>>> A
{'bar': 3, 'foo': 2}
>>> B
{'baram': 3, 'foo': 2}

答案 2 :(得分:0)

试试这个

def newval(A, B):
    for key in A:
        if key in B:
            B[key] = A[key]
    return B

答案 3 :(得分:0)

什么都没有用,所以我怀疑正在阅读的文件有问题。这确实是正确的,字典B的键中有单引号,A没有,也无法比较它们,因为它们都没有匹配。

原始代码工作得很好:

def newval(A, B):
for key in A:
    if key in B:
        B[key][1] = A[key][0]
        return B