小编Nad*_*nes的帖子

为什么这个循环比创建字典的字典理解更快?

我不是来自软件/计算机科学背景,但我喜欢用Python编写代码,并且通常可以理解为什么事情变得更快.我真的很想知道为什么这个for循环比字典理解运行得更快.任何见解?

问题:给定a带有这些键和值的字典,返回一个字典,其值为键,键为值.(挑战:在一行中做到这一点)

和代码

a = {'a':'hi','b':'hey','c':'yo'}

b = {}
for i,j in a.items():
    b[j]=i

%% timeit 932 ns ± 37.2 ns per loop

b = {v: k for k, v in a.items()}

%% timeit 1.08 µs ± 16.4 ns per loop
Run Code Online (Sandbox Code Playgroud)

python performance python-3.x python-internals dictionary-comprehension

39
推荐指数
2
解决办法
4439
查看次数