python - li.append(i) vs tu = tu + (i,)
问题描述
我的问题是为什么将数据存储在列表中并附加每个新数据点比使用元组并在每次迭代时重新定义元组要快得多。我的代码:
def li(N):
li = []
for i in range(N):
li.append(i)
return
def tu(N):
tu = ()
for i in range(N):
tu = tu + (i,)
return
如果我以 N = 100000 运行我的函数,则 li 需要 0.02364325523376465 和 tu 24.86034870147705。
速度如此巨大的差异是否有原因?
解决方案
列表是可变的。您可以将更多项目添加到现有列表中。元组是不可变的。对于元组,您每次都必须创建一个全新的元组。这更慢,尤其是当元组很大时。
没有理由使用元组版本。如果您想逐渐创建一个大元组,最好使用列表并在最后转换为元组。
推荐阅读
- python - /1 处的 OperationalError 没有这样的列:auctions_comment.listing_id
- json - 如何在平面列表中呈现 XML 反应原生
- javascript - React.js 无限重新渲染
- oracle - Oracle Apex 20 - 甘特图如何隐藏不活动的日期和时间
- flutter - 如何在 Flutter 中的容器周围有一个具有边界半径的三边边界?
- javascript - Jest 文档不是从源文件中定义的
- java - 当作为 KeyAdapter 的参数给出时,弹出对象不起作用
- python - 使用过于压缩的日期和值绘制熊猫系列
- ios - 如何为 UIView 设置特定的角和阴影
- git - 更新了 Mac 上的 Git,旧版本仍然显示