擅长:python、mysql、java
<p>您可以传递(key,value)的dict元组,这比使用字典理解快两倍</p>
<pre><code>lst_of_tpls = [(1, "test2", 3, 4), (11, "test12", 13, 14), (21, "test22", 23, 24)]
mykeys = ["ones", "text", "threes", "fours"]
my_dict = dict(zip(mykeys, zip(*lst_of_tpls)))
</code></pre>
<p>输出:</p>
<pre><code>{'ones': (1, 11, 21),
'text': ('test2', 'test12', 'test22'),
'threes': (3, 13, 23),
'fours': (4, 14, 24)}
</code></pre>
<p>探查器示例:</p>
<pre><code>lst_of_tpls = [(1, "test2", 3, 4), (11, "test12", 13, 14), (21, "test22", 23, 24)]
mykeys = ["ones", "text", "threes", "fours"]
def dict_comprehension():
return {a: list(b) for a, b in zip(mykeys, zip(*lst_of_tpls))}
def dict_generator():
return dict(zip(mykeys, zip(*lst_of_tpls)))
if __name__ == "__main__":
import timeit
funcs = (dict_comprehension, dict_generator)
for f in funcs:
result = timeit.timeit(f, number=10000, globals=globals())
print(f"{f.__name__}: {result:.5f}")
dict_comprehension: 0.05009
dict_generator: 0.02468
</code></pre>