我不是来自软件/计算机科学背景,但我喜欢用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