Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python: List creation by multiplication operator time complexity

Tags:

python

big-o

Python What's the time complexity of using

a = [1]*n 

vs.

for i in range(n): 
    a.append(1)

Are both O(n) or does the first O(1)?

like image 622
Shimaa Avatar asked Oct 03 '22 07:10

Shimaa


1 Answers

The former is O(n), due to the use of PyList_New() with a known size. The latter is slightly worse than O(n), due to the need to resize the list after several appends.

like image 97
Ignacio Vazquez-Abrams Avatar answered Oct 13 '22 10:10

Ignacio Vazquez-Abrams