我有点通过这段代码不解:这是更换与字典的字典B键值值
def newval(A, B):
for key in A:
if key in B:
B[key][1] = A[key][0]
return B
这不会在我出于某种原因程序运行在所有。
基本上我希望它通过字典A,循环并在字典B中找到相同的密钥,然后用A替换字典B的键值。
我有点通过这段代码不解:这是更换与字典的字典B键值值
def newval(A, B):
for key in A:
if key in B:
B[key][1] = A[key][0]
return B
这不会在我出于某种原因程序运行在所有。
基本上我希望它通过字典A,循环并在字典B中找到相同的密钥,然后用A替换字典B的键值。
尝试下面的代码,
>>> 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
您可以通过此代码尝试:
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}
没有任何工作,所以我怀疑正在读取的文件有问题。这确实是正确的,B字母的关键字中有单引号,A没有,并且根本无法比较它们,因为它们都不匹配。
原始代码工作得很好:
def newval(A, B):
for key in A:
if key in B:
B[key][1] = A[key][0]
return B
什么是“将无法运行”是什么意思?什么是类型的值在字典中?如果他们比匹配键多?你想替换所有相应的值吗? – 2014-11-03 06:10:58
你的函数在B中第一个'key'为'True'后返回。这是正确的行为? – 2014-11-03 06:30:44
它甚至没有通过函数,这就是我的意思。 @ YS-L – adam 2014-11-03 14:13:14