使用字典理解有条件地合并两个字典

问题描述 投票:-2回答:2

我想根据d1的值和d2键的子字符串将两个字典连接起来。生成的字典的键为d1,其值为d2。

d1 = {'web02': '23', 'web01': '50'}
d2 = {'server/dc-50': 's01.local', 'server/dc-23': 's02.local'}

将得到= {web01:s01.local, web02:s02.local}

python python-2.7 dictionary dictionary-comprehension
2个回答
1
投票

我想这就是您所需要的:

result = {k1:v2 for k1,v1 in d1.items() for k2,v2 in d2.items() if v1 in k2}

输出

{'web02': 's02.local', 'web01': 's01.local'}

0
投票

这通过使用字符串格式获取值而没有嵌套循环:

data = {k: d2[f'server/dc-{v}'] for k, v in d1.items()}

打印:

{'web02': 's02.local', 'web01': 's01.local'}
© www.soinside.com 2019 - 2024. All rights reserved.