리스트를 뒤집는 3가지 방법
[::-1]
리스트를 역순으로 슬라이싱 하는 방법이다. 새로운 리스트를 만들 필요 없이 기존의 리스트를 뒤집어 반환한다. 하지만 슬라이싱을 활용해 뒤집는 경우 리스트의 크기가 매우 크다면 메모리를 필요 이상으로 낭비하게 될 수 있다.
reverse()
원본 리스트를 직접 뒤집기 때문에 메모리 사용량이 적다. 하지만 원본 리스트가 변경되기 때문에 원본 리스트를 유지하고 싶다면 사용하지 않아야 한다.
reversed()
반환하는 값이 iterator이기 때문에 원본 리스트가 바뀌지 않으면서 메모리 사용량이 적다. 하지만 바로 사용할 수는 없어 list()를 통해 리스트 형태로 변환 후 사용하게 된다.
결론
- 원본 리스트를 변경해도 상관 없는 경우 → reverse()
- 원본 리스트를 보존해야 하지만 리스트의 크기가 작은 경우 → [::-1]
- 원본 리스트를 보존해야 하고 리스트의 크기가 매우 큰 경우 → reversed()
※ 리스트의 크기를 기준으로 나누었지만 근본적인 기준은 메모리 사용량입니다. 리스트의 크기가 클수록 메모리 사용량도 커지기 때문에 이해하기 쉽도록 표현한 것이며, 여기서 리스트의 크기가 작다고 함은 요소가 100개 정도인 것을 뜻하고 리스트의 크기가 크다고 함은 요소가 10,000개를 넘어가는 경우를 말합니다.
728x90
'Insights (종료) > For KR' 카테고리의 다른 글
[CS] 1.1 + 0.1 != 1.2인 이유 (1) | 2024.12.14 |
---|---|
[GitHub] 최근 커밋 완전히 삭제하기 (0) | 2024.11.30 |
[Python] 백준 11718번: EOFError가 발생하지 않는다고? (0) | 2024.11.23 |
[Python] 백준 2675번: 이스케이프 문자 처리 (0) | 2024.11.16 |
[Python] 백준 10809번: find()는 인덱스만 반환하는가? (0) | 2024.11.09 |