더북(TheBook)

리스트 곱셈: 초기화와 할당을 빠르게

기본적으로 배열(리스트)을 다룰 때는 동적으로 다루지만, 가끔 미리 할당해 놓은 고정 배열에다가 계산해야 하는 경우가 있습니다. 이럴 때 리스트에 곱셈 연산을 하여 초기화와 할당을 동시에 진행하도록 만들 수 있습니다.

data1 = [0 for _ in range(1000)]
data2 = [0] * 1000

data1의 경우 for 문을 1,000번 반복하면서 리스트에 0을 집어넣기 때문에 O(n)만큼 소모되지만, data2의 경우 [0]을 1,000번 반복하는 것이 전부이므로 O(n) 시간으로 동일한 작업을 수행할 수 있습니다.

 

 

문자열 합치기: ''.join( )을 쓰고 +는 사용하지 말자

문자열을 다룰 때 자세히 소개하겠지만, 문자열을 합칠 때는 문자열의 개수가 정말 적은 것이 아니라면 + 연산자를 사용하면 안 됩니다. 다른 언어와는 다르게 파이썬의 문자열은 내용을 변경할 수 없기 때문에 +로 합칠 경우 각각의 문자열을 새로운 메모리에 복사하여 새 문자열을 만들기 때문에 사실상 시간 복잡도가 O(n2) 정도가 됩니다. 따라서 ''.join()을 사용해 문자열을 합쳐야 이러한 계산 과정을 거치지 않고 빠르게 합칠 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.