Является ли `extension` быстрее, чем` + = `?

В python мы можем объединять списки двумя способами:

  1. lst.extend ( another_lst)
  2. lst + = another_lst

Я думал, что extend будет быстрее, чем использование + = , потому что он повторно использует список вместо создания нового, используя два других .

Но когда я проверил это с помощью timeit , оказалось, что + = быстрее,

>>> timeit('l.extend(x)', 'l = range(10); x = range(10)')
0.16929602623
>>> timeit('l += x', 'l = range(10); x = range(10)')
0.15030503273
>>> timeit('l.extend(x)', 'l = range(500); x = range(100)')
0.805264949799
>>> timeit('l += x', 'l = range(500); x = range(100)')
0.750471830368

Что-то не так с кодом, который я ввел в timeit ?

11
задан satoru 14 November 2010 в 09:58
поделиться