Я написал фрагмент, чтобы доказать свою теорию:
Код: Выделить всё
import timeit
def foo(i):
res = ""
for _ in range(i):
res += "a"
return res
def foo2(i):
res = []
for _ in range(i):
res.append("a")
return "".join(res)
iterations = 100000
print(timeit.timeit('foo(iterations)', globals=globals(), number=100))
print(timeit.timeit('foo2(iterations)', globals=globals(), number=100))
- время выполнения растет линейно в зависимости от итераций
Код: Выделить всё
foo - едва ли в два раза быстрее, чем foo
Код: Выделить всё
foo2
Ошибся ли я тогда? Зависит ли += от длины строки или нет? Если да, то как я могу это доказать?
Подробнее здесь: https://stackoverflow.com/questions/776 ... e-manage-t
Мобильная версия