嵌套字典Python:更新逻辑失败

2024-05-29 06:34:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我的字典:

d={'a':'a1,a2,a3,a4','b':'b1,b2,b3,b4',c:'c1,c2,c3,c4'}

等等,d,e,f

d2={'a1':'a11,a12,a13,a14,a15','a2':'a21,a22,a23,a24,a25'} 

a3、a4、a5、b1、b2……等等

预期产出

dict1={'a':{'a1':'a11,a12,a13,a14,a15','a2':'a21,a22,a23,a24,a25'}} 

以此类推

我的输出

dict1={'a':{'a1':'a11,a12,a13,a14,a15'},'a2':'a21,a22,a23,a24,a25'}

然后再次如此

 'b':{'b1':'b11,b12,b13,b14,b15'},'b2':'b21,b22,b23,b24,b25'}

我的代码:

dict1={}
for i in d:
    q=d[i].split(",")
    for j in q:
        dict1[i] = {}
        if j in d2:
            dict1[i][j] = d2[j]
            dict1.update(dict1[i])

任何帮助都会非常有用


Tags: a2a1b2b1d2a13a21a15
2条回答

您可以尝试嵌套字典理解和列表理解

d={'a':'a1,a2,a3,a4','b':'b1,b2,b3,b4','c':'c1,c2,c3,c4'}
d2={'a1':'a11,a12,a13,a14,a15','a2':'a21,a22,a23,a24,a25', 'b1':'b11,b12,b13,b14,b15','b2':'b21,b22,b23,b24,b25'}
dict1 = {k: {i: d2[i] for i in v.split(",") if i in d2} for k, v in d.items()})
print(dict1)

本例中的输出

{'a': {'a1': 'a11,a12,a13,a14,a15', 'a2': 'a21,a22,a23,a24,a25'}, 'b': {'b1': 'b11,b12,b13,b14,b15', 'b2': 'b21,b22,b23,b24,b25'}, 'c': {}}

因此,如果d2中有关于c的值,它们也会出现在dict1结果中

也许你可以试试:

dict1={}
for i in d:
    q=d[i].split(",")
    for j in q:
        if not dict1.get(i, None):
            dict1[i] = {}
        if j in d2:
            dict1[i][j] = d2[j]

相关问题 更多 >

    热门问题