【发布时间】:2016-05-15 04:49:23
【问题描述】:
有没有更高效、更简单的方法来创建长度为“n”的列表元组?
所以在 Python 中,如果我想创建一个列表列表,我可以这样做:
[[] for _ in range(list_length)]
为了创建一个类似性质的列表元组,我可以在技术上编写:
tuple([[] for _ in range(list_length)])
但是这样计算效率低吗,能不能写得更好一点?
警告: 对于那些认为将可变对象(例如列表)放入元组(不可变)中的人来说是个好主意;实际上,仅使用一个列表(在我的例子中是列表的列表)实际上似乎通常更快(计算上)。
【问题讨论】:
-
列表元组是一种不寻常的东西,除了一些短期的、范围狭窄的用途(如函数星形参数)之外。元组的主要优点是它是不可变的,可用于集合、字典键等。但是如果元组的 contents 是可变的,则元组本身不能安全地用于任何这些角色。
-
哇,事实上(根据我非常草率的基准测试),与使用列表执行相同操作相比,创建、访问和附加到元组中的列表需要更长的时间.