使用zip或列表理解在python中创建字典是否更有效?

Zxa*_*aos 2 python optimization zip dictionary list-comprehension

假设我想在python中使用字典设置基本文本编码.

立即想到两种方法 - 使用zip,并使用列表理解.

characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ .,!;"
dict_a = dict((x, characters[x]) for x in xrange(0, 31))
dict_b = dict(zip(xrange(0, 31), characters))
Run Code Online (Sandbox Code Playgroud)

哪个更有效?(实际编码长于31,这是一个玩具示例).差异显着吗?

或者,我接近这个错误,应该使用字典以外的东西吗?(我需要能够双向编码).

Dav*_*ebb 7

enumerate功能可能是创建您的最简单方法dict:

dict_c = dict(enumerate(characters))
Run Code Online (Sandbox Code Playgroud)

但是,我不确定是什么让你无法使用字符串.以下似乎与我相同:

>>> dict_c[3]
'D'
>>> characters[3]
'D'
Run Code Online (Sandbox Code Playgroud)