【发布时间】:2017-10-04 03:02:06
【问题描述】:
我想使用内存、速度或其他什么原因:
tuple(i for i in range(5000))
代替:
[i for i in range(5000)]
如果我不介意元组的不变性
【问题讨论】:
-
如果你需要一个元组,使用前者,如果你需要一个列表,使用后者(或
list(range(5000)))。 -
tuple或list之间的选择取决于您计划使用它而不是资源。 -
除了转换的开销之外,元组会更小更快,因为它缺乏使其可变的机制,允许快速插入等。但是转换当然需要额外的时间(一次) .
-
第一个会慢一些,虽然它可能会占用更少的内存(最终)
-
为了速度,您可以删除不需要的理解 ;)
tuple(range(5000))和list(range(5000)),或者,根据您的需要,只需range(5000)。
标签: python python-3.x list performance generator