繁体   English   中英

用字典A值替换字典B中的键值

[英]Replacing key value in dict B with dict A values

我对这段代码有些不解:这是

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

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

您可以通过以下代码尝试:

 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}

试试下面的代码,

>>> 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}

尝试这个

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

根本没有任何效果,因此我怀疑正在读取的文件有问题。 这确实是正确的,因为dict B的键中有单引号,而A没有,而且根本无法比较它们,因为它们都不匹配。

原始代码可以正常工作:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM