我有不同的嵌套字典,想計算折扣分數
A = {'tr_1': {'hos': 100.0, 'dy': 100.0},
'tr_2': {'hos': 100.0, 'dy': 50.0},
'tr_3': {'hos': 100.0, 'dy': 50.0}}
B = {'tr_1': {'cor': 160, 'ner': 0},
'tr_2': {'cor': 69, 'ner': 36.14},
'tr_3': {'cor': 63, 'ner': 41.69}}
c = {'tr_1': {'st': 0, 'st_c': 100.0},
'tr_2': {'st': 1368, 'st_c': 0},
'tr_3': {'st': 1366, 'st_c': 0}}
下面的代碼是單一折扣。我想為每次旅行做這個計算想要保存在另一個字典中
dis = {}
A = {'dy':18}
B = {'ner':89}
C = {'st_c':56}
eff = (
(20 * A['dy'])
(20 * B['ner'])
(20 * C['st_c'])
dis['value'] = eff
預期輸出如下:
dis = {'tr_1': {'eff':32},
'tr_2': {'eff':45},
'tr_3': {'eff':23}}
怎么做?不需要在最后乘以每個嵌套的字典,如您在螢屏截圖中所見,在 dict 中添加預期但想要的螢屏截圖

列 eff 就像
dd = {'tr1': {'eff':40},
'tr2':{'eff':360},
'tr3':{'eff':410}
uj5u.com熱心網友回復:
IIUC,你可以試試:
import math
dicts = [A, B, C]
keys = ['dy', 'ner', 'st_c']
out = {k: {'eff': round(0.2*math.prod(d[k][k2] for k2,d in zip(keys, dicts)), 2)}
for k in A}
print(out)
輸出:
{'tr_1': {'eff': 9.0},
'tr_2': {'eff': 54.0},
'tr_3': {'eff': 44.8}}
使用的輸入:
A = {'tr_1': {'hos': 100.0, 'dy': 3},
'tr_2': {'hos': 100.0, 'dy': 9},
'tr_3': {'hos': 100.0, 'dy': 4}}
B = {'tr_1': {'cor': 160, 'ner': 5},
'tr_2': {'cor': 69, 'ner': 6},
'tr_3': {'cor': 63, 'ner': 8}}
C = {'tr_1': {'st': 0, 'st_c': 3},
'tr_2': {'st': 1368, 'st_c': 5},
'tr_3': {'st': 1366, 'st_c': 7}}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/532894.html
標籤:Python字典
上一篇:如何根據字典的值列印字典的鍵?
