使用一个具有另一个的值的密钥从两个字典创建字典

Yog*_*tpl 0 python dictionary python-3.x

我有2个词典:

d1 = {'a':'python','b':'java','c':'c++','d':'js',........}
d2 = {'1':'a','2':'b','4':'d','3':'c',........}
Run Code Online (Sandbox Code Playgroud)

我需要使用两者创建新词典,第二个dict值应该是新词典的关键,第一个dict值应该是新词典dict的值,如:

result  = {'1':'python','2':'java','3':'c++','4':'js',........}
Run Code Online (Sandbox Code Playgroud)

我尝试这样做:

d2_rev = {j:i for i,j in d2.items()}
result = {i:d2_rev[i] for i,j in d2_rev }
Run Code Online (Sandbox Code Playgroud)

我得到正确的输出接受我有非常大的字典和执行需要更多的时间.我有什么办法可以提高这段代码的速度吗?

Jim*_*ard 6

我不知道你为什么要创建一个额外的(切换的)字典,你可以使用:

result = {i: d1[j] for i, j in d2.items()}
Run Code Online (Sandbox Code Playgroud)

并且通过不创建附加内容来减少内存和速度dict.一个dict的值是另一个的关键,直接得到它.

除此之外; 我不认为,仅在Python中,你就能获得更好的结果.