В питона, мы можем объединить списки двумя способами:Является ли `extend` быстрее, чем` + = `?
- lst.extend (another_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
?
Можете ли вы показать нам время, которое вы получаете? Кроме того, эти операции являются как на месте, так и не объясняют никакой разницы. –
Я думаю, вы должны использовать более крупные списки, в этом крошечном размере, даже малейшая фоновая активность может привести к сбою результата. – vichle
@ Space_C0wb0y @vischle Я получаю результаты в соответствии с тем, что Satoru сообщает даже со списками из 200+ элементов. + = немного, но последовательно, быстрее. Это довольно странно. –