使用 'dict-comprehension' 和 'for in' 和 'if' 中的两个不同 'dicts' 的 'values' 的字典
Dict whith 'list' of 'values' from of two different 'dicts', using a 'dict-comprehension' and 'for in' and 'if'
例如,给出了两个词典:NEED和DG。
需要创建一个新的'dict'(NDE),其中新的'keys'将与NEED中的相同,而新的'values'(NDE)将对应嵌套DG字典的'list',其中'keys'对应(NEED)中的'value',DG中的'values' - 'values'。
In: NEED= {'need1': ['good1', 'good2'], 'need2': ['good2']}
DG= {'good1': '20', 'good2': '15'}
Out: NDE={'need1':[{'good1': '20', 'good2': '15'}], 'need2': [{'good2': '15'}]}
当尝试使用列表或字典理解时,我通常会尝试使用普通的 for loop
来解决问题,因为逻辑往往更简单一些。在这种情况下,一系列循环看起来像:
NEED = {'need1': ['good1', 'good2'], 'need2': ['good2']}
DG = {'good1': '20', 'good2': '15'}
NDE = {}
for need_key, need_list in NEED.items():
sub_dict = {}
for need_child_key in need_list:
sub_dict[need_child_key] = DG[need_child_key]
NDE[need_key] = [sub_dict]
一旦我在没有理解的情况下工作,我就开始处理理解部分。
NDE = {
need_key: [
{need_child_key: DG[need_child_key] for need_child_key in need_list}
]
for need_key, need_list in NEED.items()
}
注意:我的解决方案假定 NEED 中的值将始终对应于 DG 中的键...
代码:
NEED = {'need1': ['good1', 'good2'], 'need2': ['good2']}
DG = {'good1': '20', 'good2': '15'}
NDE={}
for i in NEED.keys(): #initializing nested dict
NDE[i] = {}
for i in NEED.keys():
for j in DG.keys():
for k in NEED[i]:
if k==j:
NDE[i][j] = DG[j]
print(NDE)
输出:
{'need1': {'good1': '20', 'good2': '15'}, 'need2': {'good2': '15'}}
例如,给出了两个词典:NEED和DG。
需要创建一个新的'dict'(NDE),其中新的'keys'将与NEED中的相同,而新的'values'(NDE)将对应嵌套DG字典的'list',其中'keys'对应(NEED)中的'value',DG中的'values' - 'values'。
In: NEED= {'need1': ['good1', 'good2'], 'need2': ['good2']}
DG= {'good1': '20', 'good2': '15'}
Out: NDE={'need1':[{'good1': '20', 'good2': '15'}], 'need2': [{'good2': '15'}]}
当尝试使用列表或字典理解时,我通常会尝试使用普通的 for loop
来解决问题,因为逻辑往往更简单一些。在这种情况下,一系列循环看起来像:
NEED = {'need1': ['good1', 'good2'], 'need2': ['good2']}
DG = {'good1': '20', 'good2': '15'}
NDE = {}
for need_key, need_list in NEED.items():
sub_dict = {}
for need_child_key in need_list:
sub_dict[need_child_key] = DG[need_child_key]
NDE[need_key] = [sub_dict]
一旦我在没有理解的情况下工作,我就开始处理理解部分。
NDE = {
need_key: [
{need_child_key: DG[need_child_key] for need_child_key in need_list}
]
for need_key, need_list in NEED.items()
}
注意:我的解决方案假定 NEED 中的值将始终对应于 DG 中的键...
代码:
NEED = {'need1': ['good1', 'good2'], 'need2': ['good2']}
DG = {'good1': '20', 'good2': '15'}
NDE={}
for i in NEED.keys(): #initializing nested dict
NDE[i] = {}
for i in NEED.keys():
for j in DG.keys():
for k in NEED[i]:
if k==j:
NDE[i][j] = DG[j]
print(NDE)
输出:
{'need1': {'good1': '20', 'good2': '15'}, 'need2': {'good2': '15'}}