我有點通過這段代碼不解:這是更換與字典的字典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