.reverse()

Leejaegun·2025년 3월 20일

코딩테스트 시리즈

목록 보기
24/49

Python에서 .reverse()리스트(list)의 요소를 뒤집는 기능을 가진 메서드입니다. 하지만 몇 가지 중요한 특징이 있습니다.

.reverse()의 특징

  1. 리스트 자체를 변경 (in-place)
    .reverse()는 리스트의 순서를 뒤집지만 새로운 리스트를 반환하지 않고, 원본 리스트를 직접 수정합니다.

  2. 반환값은 None
    새로운 리스트를 반환하지 않기 때문에, .reverse()를 사용한 결과를 변수에 할당하면 None이 저장됩니다.

예제

numbers = [1, 2, 3, 4, 5]
numbers.reverse()

print(numbers)  # [5, 4, 3, 2, 1]

.reverse()는 리스트 자체를 변경했으므로, numbers의 값이 뒤집혀 있습니다.

주의할 점: 반환값이 None

numbers = [1, 2, 3]
reversed_numbers = numbers.reverse()

print(reversed_numbers)  # None

이처럼 .reverse()새로운 리스트를 반환하지 않기 때문에, 변수에 저장하면 None이 들어갑니다.

.reverse() vs [::-1]

리스트를 뒤집는 또 다른 방법은 슬라이싱 [::-1]을 이용하는 것입니다.

numbers = [1, 2, 3, 4, 5]
reversed_numbers = numbers[::-1]

print(reversed_numbers)  # [5, 4, 3, 2, 1]
print(numbers)  # [1, 2, 3, 4, 5] (원본 유지)

🔹 [::-1]는 새로운 리스트를 반환하기 때문에, 원본 리스트는 변경되지 않습니다.
🔹 .reverse()는 리스트를 직접 수정하므로 원본 리스트가 변경됩니다.

.reversed()와의 차이점

reversed() 함수는 반환값이 reversed object (이터레이터) 이므로 .reverse()와 다릅니다.

numbers = [1, 2, 3, 4, 5]
reversed_obj = reversed(numbers)

print(list(reversed_obj))  # [5, 4, 3, 2, 1]
print(numbers)  # [1, 2, 3, 4, 5] (원본 유지)

.reverse() → 원본 리스트 수정 (in-place)
reversed() → 새로운 이터레이터 반환 (원본 변경 X)

언제 .reverse()를 사용해야 할까?

✅ 원본 리스트를 뒤집어야 할 때
✅ 새로운 리스트를 만들 필요가 없을 때

⚠️ 원본 리스트를 변경하고 싶지 않다면 [::-1] 또는 list(reversed()) 사용!

정리

메서드반환값원본 리스트 변경새로운 리스트 생성
.reverse()NoneOX
[::-1]리스트XO
reversed()이터레이터XO

.reverse()는 간단하지만 원본을 직접 변경하는 점을 주의해야 합니다! 🚀

profile
Lee_AA

0개의 댓글