[英]How to get values in nested dictionary according to keys given by lists?
我試圖根據列表給出的鍵在嵌套字典中獲取值。
這是我的代碼:
ops = {
'OP1' : {'W1':5, 'w3':6, 'w4':7, 'w5':9},
'OP3' : {'W21':61, 'w22':56, 'w23':76, 'w24':96},
'OP4' : {'W31':61, 'w32':56, 'w33':76, 'w34':96},
'OP5' : {'W41':61, 'w42':56, 'w43':76, 'w44':96},
}
lsta = ['OP1', 'OP3', 'OP4', 'OP5']
lstd = ['w3', 'w22', 'w32', 'w44']
#我試過了
for i in lsta:
lste=[]
for ele in lstd:
if ele == ops_machine[i]:
e = ops_machine[i][ele]
KeyError: 'OP1'
我想要的是lstd給定的每個鍵的對應值,這意味着:結果= [6、56、56、96]
有人可以幫我嗎? 謝謝
問題在於,當您應該同時遍歷兩個列表時,您正在使用嵌套循環。 您可以為此使用zip
:
[ops[d1][d2] for d1, d2 in zip(lsta, lstd)]
# [6, 56, 56, 96]
這樣就可以了:
lsta = ['OP1', 'OP3', 'OP4', 'OP5']
lstd = ['w3', 'w31', 'w4', 'w51']
ops = {
'OP1' : {'W1':5, 'w3':6, 'w4':7, 'w5':9},
'OP3' : {'W11':61, 'w31':56, 'w41':76, 'w51':96},
'OP4' : {'W11':61, 'w4':56, 'w41':76, 'w51':96},
'OP5' : {'W11':61, 'w666':56, 'w41':76, 'w51':96},
}
for i in lsta:
if i in ops.keys():
sub_dict = ops[i]
for j in lstd:
if j in sub_dict.keys():
print (sub_dict[j])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.