다차원 리스트
참고 : 널널한 교수의 코딩 클래스
방법 1) [[0]*cols]*rows
multidim_list1.py
import time, sys
rows,cols=10000,100000
time1=time.time()
list_ = [[0]*cols]*rows
time2=time.time()
print("time : {:10.10f}".format(time2-time1))
방법 2) [[0]*cols for _ in range(rows)]
multidim_list2.py
import time, sys
rows,cols=10000,100000
time1=time.time()
list_ = [[0]*cols for _ in range(rows)]
time2=time.time()
print("time : {:10.10f}".format(time2-time1))
비교
PS C:\Users\LSH\Desktop\advanced_python> python multidim_list1.py
time : 0.0010018349
PS C:\Users\LSH\Desktop\advanced_python> python multidim_list2.py
time : 7.1857817173
방법 1) 이 더 빠른 이유?
방법 1
- 객체수가 더 적다 & 참조도 더 적다 -> 빠르다
방법 2
장/단점?
but 방법 1)의 경우…아래와 같은 문제 발생
방법 1)
>>> list_ =[[0]*5]*3
>>> list_
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
>>> list_[0][0]=100
>>> list_
[[100, 0, 0, 0, 0], [100, 0, 0, 0, 0], [100, 0, 0, 0, 0]]
방법 2)
>>> list_ =[[0]*5 for _ in range(3)]
>>> list_[0][0]=100
>>> list_
[[100, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]