jm_p_op

.py 실험실 공간할당(list붙이기) 본문

py

.py 실험실 공간할당(list붙이기)

jm_p_op 2023. 5. 6. 16:29

공간할당을 하면 시간이 많이 줄어든다.

  • 1.enumerate - 변수 2개를 뽑아쓴다. 따라서 그만큼 속도느려짐(2와 비슷)
  • 2.append - list뒤에 붙이는 기본적인 방식(1과 비슷)
  • 3.공간을 할당하고 거기에 덭붙이는 방식(가장 좋음)
  • 4.+=을 사용하여 리스트 붙이는 방식 (가장 안좋음)
import time
n = 10**8
start = time.time()
a = [0]*n
for i, letter in enumerate(a):
    a[i] = i
print("time1 :", time.time() - start)
del a


start = time.time()
b = []
for i in range(n):
    b.append(i)
print("time2 :", time.time() - start)
del b

start = time.time()
c = [0]*n
for i in range(n):
    c[i] = i
print("time3 :", time.time() - start)
del c

start = time.time()
d = []
for i in range(n):
    d += [i]
print("time4 :", time.time() - start)
del d

 

 

n=10**5 (2>3>1>4)

  • time1 : 0.006000518798828125
  • time2 : 0.0030143260955810547
  • time3 : 0.004019498825073242
  • time4 : 0.007027149200439453

n=10**6 (3>1>2>4)

  • time1 : 0.053195953369140625
  • time2 : 0.057071685791015625
  • time3 : 0.04083251953125
  • time4 : 0.07809948921203613

n=10**8 (3>2>1>4)

  • time1 : 6.139295339584351
  • time2 : 5.541903257369995
  • time3 : 4.38070273399353
  • time4 : 8.300410509109497