在Python中使用zip还是列表推导更高效创建字典?
假设我想在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 个回答
7
enumerate
函数可能是创建你自己的 dict
(字典)最简单的方法。
dict_c = dict(enumerate(characters))
不过,我不太明白这样做有什么好处,是不是用字符串也能做到。以下的方式在我看来是等价的:
>>> dict_c[3]
'D'
>>> characters[3]
'D'