Python:如何将字典的键映射到另一个字符串的值?

时间:2017-02-17 14:15:12

标签: python dictionary key key-value

假设您正在使用这两个词典:

importlib

并且您想要提供具有以下格式的字典:a={(1,2):1.8,(2,3):2.5,(3,4):3.9} #format -> {(x,y):value} b={10:(1,2),20:(2,3),30:(3,4)} #format -> {id:(x,y)} 。在此示例中,结果为:

{id:value}

我试过以下

c={10:1.8,20:2.5,30:3.9}

但结果显然是微不足道的

c={k:j for k in b.keys() and j in a.values()}

这样做的最佳方法是什么?你如何“模仿”这些信件?

1 个答案:

答案 0 :(得分:2)

迭代b似乎已经足够了 - 为什么不只使用字典的自然对应。

>>> {k: a[v] for k, v in b.items()}
{10: 1.8, 20: 2.5, 30: 3.9}

对你的想法进行正确的语法尝试就像是

>>> {k:j for k, j in zip(b.keys(),a.values())}
{10: 1.8, 20: 3.9, 30: 2.5}

然而,正如您所看到的,这无论如何都无效。这是因为dicts当然是无序的,因此一个dict的键和另一个dict的值之间没有强制关系。