获取 2 个字典中(几乎)匹配键的值并加入它们
Get values for (almost) matching keys in 2 dictionaries and join them
所以我想获取 2 个字典中(几乎)匹配键的值并加入它们。我试过了:
dict3 = {key:dict1[key].strip() for key in dict2.keys() if key.partition('__')[0] in dict1}
...但我没有得到任何结果,因为它没有找到任何匹配项,我的命令在下面,我知道我很接近但我遗漏了一些东西:
dict1:
{
"h1__display-3": "",
"h1__display-3_text-white_text-center": "",
"h1__mt-4": "",
"h1__mt-5": "",
"h1__mt-5_kakabum": "",
"h1__my-4": "",
"h2__card-title": "",
"h2__mt-4": "",
"h2__my-4": ""
}
dict2:
{
"h1": "<h1>[]</h1>",
"h2": "<h2>[]</h2>"
}
期望的结果:
{
"h1": "<h1>[]</h1>",
"h1__display-3": "<h1>[]</h1>",
"h1__display-3_text-white_text-center": "<h1>[]</h1>",
"h1__mt-4": "<h1>[]</h1>",
"h1__mt-5": "<h1>[]</h1>",
"h1__mt-5_kakabum": "<h1>[]</h1>",
"h1__my-4": "<h1>[]</h1>",
"h2": "<h2>[]</h2>",
"h2__card-title": "<h2>[]</h2>",
"h2__mt-4": "<h2>[]</h2>",
"h2__my-4": "<h2>[]</h2>"
}
我希望 运行 第一行代码可以工作,但我认为我的语法不正确。
将 dict 构造分解成一个普通的循环使它更容易理解。我们要
res = {}
for k in dict1:
key = k.split('__')[0]
if key in dict2:
res[k] = dict2[key]
相当于
res = {k: dict2[k.split('__')[0]] for k in dict1 if k.split('__')[0] in dict2}
这不会添加 h1
和 h2
作为键,但是使用
可以轻松完成
res.update(dict2)
所以我想获取 2 个字典中(几乎)匹配键的值并加入它们。我试过了:
dict3 = {key:dict1[key].strip() for key in dict2.keys() if key.partition('__')[0] in dict1}
...但我没有得到任何结果,因为它没有找到任何匹配项,我的命令在下面,我知道我很接近但我遗漏了一些东西:
dict1:
{
"h1__display-3": "",
"h1__display-3_text-white_text-center": "",
"h1__mt-4": "",
"h1__mt-5": "",
"h1__mt-5_kakabum": "",
"h1__my-4": "",
"h2__card-title": "",
"h2__mt-4": "",
"h2__my-4": ""
}
dict2:
{
"h1": "<h1>[]</h1>",
"h2": "<h2>[]</h2>"
}
期望的结果:
{
"h1": "<h1>[]</h1>",
"h1__display-3": "<h1>[]</h1>",
"h1__display-3_text-white_text-center": "<h1>[]</h1>",
"h1__mt-4": "<h1>[]</h1>",
"h1__mt-5": "<h1>[]</h1>",
"h1__mt-5_kakabum": "<h1>[]</h1>",
"h1__my-4": "<h1>[]</h1>",
"h2": "<h2>[]</h2>",
"h2__card-title": "<h2>[]</h2>",
"h2__mt-4": "<h2>[]</h2>",
"h2__my-4": "<h2>[]</h2>"
}
我希望 运行 第一行代码可以工作,但我认为我的语法不正确。
将 dict 构造分解成一个普通的循环使它更容易理解。我们要
res = {}
for k in dict1:
key = k.split('__')[0]
if key in dict2:
res[k] = dict2[key]
相当于
res = {k: dict2[k.split('__')[0]] for k in dict1 if k.split('__')[0] in dict2}
这不会添加 h1
和 h2
作为键,但是使用
res.update(dict2)