在Python中使用zip还是列表推导更高效创建字典?

2 投票
1 回答
1147 浏览
提问于 2025-04-16 12:04

假设我想在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'

撰写回答