Python에서 리스트의 요소 순서를 뒤집는 방법은 크게 세 가지가 있습니다. 원본 리스트 자체를 변경하는 reverse() 메서드, 새로운 리스트를 생성하는 슬라이싱 [::-1], 그리고 내장 함수 reversed()입니다. 각 방법의 특징과 사용 예제를 살펴보겠습니다.
1. reverse() 메서드로 제자리에서 뒤집기
리스트 클래스가 기본으로 제공하는 reverse() 메서드를 사용하면 원본 리스트를 직접(in-place) 수정하여 순서를 뒤집을 수 있습니다. 별도의 새 리스트를 만들지 않으므로 메모리 효율이 좋습니다.
예제
a = [3, "Hello", 2, 1] a.reverse() print(a)
출력 결과
[1, 2, "Hello", 3]
2. 슬라이싱 [::-1]로 새 리스트 만들기
원본 리스트는 그대로 유지한 채 뒤집힌 새로운 리스트가 필요하다면, 슬라이싱 문법 [::-1]을 활용할 수 있습니다. 시작과 끝 인덱스를 생략하고 스텝(step)을 -1로 지정하면 리스트 전체가 역순으로 복사됩니다.
예제
a = [3, "Hello", 2, 1] print(a[::-1])
출력 결과
[1, 2, "Hello", 3]
이 경우 원본 리스트 a는 변경되지 않으며, 뒤집힌 순서의 새 리스트가 반환됩니다.
3. reversed() 함수 사용하기
새로운 리스트를 생성하는 또 다른 방법은 내장 함수 reversed()를 사용하는 것입니다. 이 함수는 리스트 전체를 복사하지 않고 역순으로 순회할 수 있는 이터레이터(iterator)를 반환하므로, 대용량 데이터를 다룰 때 유용합니다. 리스트 형태가 필요하다면 list()로 감싸주면 됩니다.
예제
a = [3, "Hello", 2, 1] rev_a = list(reversed(a)) print(rev_a)
출력 결과
[1, 2, "Hello", 3]
어떤 방법을 선택해야 할까?
- 원본을 직접 수정해도 괜찮다면 →
list.reverse() - 간결한 한 줄 코드로 새 리스트가 필요하다면 → 슬라이싱
[::-1] - 메모리 효율적으로 역순 순회만 필요하다면 →
reversed()
상황에 맞는 방법을 선택하면 더 깔끔하고 효율적인 Python 코드를 작성할 수 있습니다.