어제 오늘 내일

[Python 기초] "거꾸로 줄을 서시오!" 파이썬 리스트 뒤집기 3가지 방법 본문

IT/Python

[Python 기초] "거꾸로 줄을 서시오!" 파이썬 리스트 뒤집기 3가지 방법

hi.anna 2026. 5. 18. 23:56

데이터를 다루다 보면 시간순으로 쌓인 데이터를 역순으로 보여주거나, 리스트의 앞뒤를 반전시켜야 할 때가 있습니다. 파이썬에서 가장 많이 쓰이는 방식들을 정리해 드릴게요.


1. 원본을 직접 뒤집기:

리스트가 자체적으로 가지고 있는 기능입니다. 이 함수를 쓰면 원본 리스트의 순서가 영구적으로 뒤집힙니다. 별도의 결과값을 반환하지 않으므로 주의해야 합니다.

📌 예제 코드: 리스트 자체를 반전

numbers = [1, 2, 3, 4, 5]

# 원본 리스트를 뒤집습니다.
numbers.reverse()

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

2. 뒤집힌 복사본 만들기:

원본은 그대로 유지하고 싶을 때 사용합니다. reversed() 함수는 뒤집힌 상태의 '반복 가능한 객체'를 만들어주기 때문에, 다시 list()로 감싸주어야 우리가 아는 리스트 형태가 됩니다.

📌 예제 코드: 원본 보존하며 뒤집기

origin = ["A", "B", "C"]

# 원본은 놔두고 뒤집힌 새 리스트 생성
rev_list = list(reversed(origin))

print("원본:", origin)    # 출력: ['A', 'B', 'C']
print("뒤집힘:", rev_list) # 출력: ['C', 'B', 'A']

3. 가장 파이썬스러운 방법: 슬라이싱

파이썬의 꽃이라 불리는 슬라이싱(Slicing)을 이용하는 방법입니다. 코드가 가장 짧고 직관적이어서 실무에서 가장 많이 사용됩니다. 이 방식 역시 원본은 그대로 유지됩니다.

📌 예제 코드: 슬라이싱 활용

colors = ["red", "green", "blue"]

# [시작:끝:증감폭]인데 증감폭을 -1로 주면 거꾸로 갑니다.
reversed_colors = colors[::-1]

print(reversed_colors)
# 출력: ['blue', 'green', 'red']

📝 마치며: 어떤 것을 쓸까요?

  • 원본 리스트의 순서를 완전히 바꿔도 된다면?.reverse()
  • 원본은 소중하니까 놔두고 뒤집힌 리스트만 따로 필요하다면?[::-1] (슬라이싱)
  • 리스트가 너무 커서 메모리를 아끼며 하나씩 꺼내 쓰고 싶다면?reversed() (반복문과 함께 사용)

 

반응형
Comments