arr[::-1]
vs arr.reverse()
arr[::-1]
은 pyton의 slicing을 사용해서 리스트의 배열을 역순으로 만드는 방법. 기존의 리스트를 변경하지 않고 새로운 리스트를 만든다.arr.reverse()
는 리스트를 제자리에서 뒤집는 메서드이다. 리스트를 직접 수정해서 변경한다. return 값은 None이다.두 방식은 속도면에서 큰 차이가 없지만 매우 큰 리스트의 경우 새로운 리스트를 만드는지의 여부에 따라 약간의 차이가 발생할 수 있다.
.join()
vs for loop
for loop
- 반복문으로 문자를 하나씩 붙이는 경우 문자열이 변경됨에 따라 메모리를 재할당하고 이전 문자열을 복사한다..join()
- 문자열 리스트를 한 번에 합치는 방법을 제공하고, 내부적으로 효율적인 메모리 관리를 수행한다. join과 같이 일부 파이썬 구현체가 C로 작성되어있는 경우가 있는데 내부적으로 최적화가 이루어져 빠른 속도를 제공한다.Makefile은 make 커맨드를 통해 해당 파일의 내용을 읽어 목표 파일(target)을 만들 수 있게 해주는 파일이다.
make를 사용하지 않으면 많은 소스 파일을 컴파일해야 하는 경우 매번 여러 파일을 지정해주는데 어려움이 있다. 이러한 어려움을 make를 통해 미리 세팅하여 사용할 수 있다.