Python:用密钥压缩字典

atp*_*atp 8 python

我有:

list_nums = [1,18]
list_chars = ['a','d']
Run Code Online (Sandbox Code Playgroud)

我想要:

list_num_chars = [{'num':1, 'char':'a'},
                  {'num':18, 'char':'d'}]
Run Code Online (Sandbox Code Playgroud)

是否有比以下更优雅的解决方案:

list_num_chars = [{'num':a, 'char':b} for a,b in zip(list_nums, list_chars)]
Run Code Online (Sandbox Code Playgroud)

Sve*_*ach 3

如果初始列表很长,您可能希望使用itertools.izip()而不是zip()稍微提高性能和减少内存使用,但除此之外,我想不出明显“更好”的方法来做到这一点。