为什么Python中的append操作在附加大字符串时会减慢工作速度?

2024-10-03 17:18:54 发布

您现在位置:Python中文网/ 问答频道 /正文

当您运行以下代码时,追加时间会随着时间的推移延长10倍。你知道吗

from datetime import datetime

test = []

for i in range(30000):
    time_before_append = datetime.now()
    test.append("testeafda" * 100000)
    time_after_append = datetime.now()
    print(time_after_append - time_before_append)

我知道append一般是O(1)。这是否与垃圾收集、列表自身大小调整、内存使用和/或其他相关?只是想了解Python的内部结构是如何工作的。你知道吗


Tags: 代码infromtestimportfordatetimetime
2条回答

我认为它来自"testeafda" * 100000,因为新字符串被创建了10000次。你知道吗

即使在将字符附加到现有字符串时,实际上也会创建一个新字符串。你知道吗

为什么不使用Xrange函数(如果您使用的是python2.x),这在内存管理方面应该有显著的改进。喜欢

for i in xrange(30000):
 ...

相关问题 更多 >