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

时间:2011-02-18 16:32:08

标签: python optimization dictionary zip 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))

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

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

1 个答案:

答案 0 :(得分:7)

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

dict_c = dict(enumerate(characters))

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

>>> dict_c[3]
'D'
>>> characters[3]
'D'