[파이썬] 리스트 거꾸로 뒤집기

My_Code·2023년 8월 11일
post-thumbnail

📌 reverse() 함수

리스트.reverse() 함수는 새로운 리스트를 반환하여 생성하는 것이 아니라 기존의 리스트에서 단순히 위치만 역순으로 바꾸는 역할을 한다.

list = ['a', 'b', 'c', 'd']
print(list)

list.reverse()
print(list)

## 실행 결과 ##
# ['a', 'b', 'c', 'd']
# ['d', 'c', 'b', 'a']

그리고 리스트.reverse() 함수는 위에서 말한 것처럼 어떤 것을 반환하는 함수가 아니기에 그냥 None이 출력된다.

list = ['a', 'b', 'c', 'd']
print(list.reverse())

## 실행 결과 ##
# None

📌 reversed() 내장함수

reversed(인자) 함수는 파이썬의 내장함수로 리스트뿐만 아니라 튜플, 문자열과 같이 여러 원소를 가지는 자료구조를 인자로 받을 수 있다.

list = ['a', 'b', 'c']
tuple = ('a', 'b', 'c')
str = 'abc'

print(reversed(list))
print(reversed(tuple))
print(reversed(str))

## 실행 결과 ##
# <list_reverseiterator object at 0x000002D11C84BBE0>
# <reversed object at 0x000002D11C84BBE0>
# <reversed object at 0x000002D11C84BBE0>

reversed() 함수는 해당하는 인자를 다시 반환하는 것이 아니라 reversed 객체를 반환한다.

그렇다면 정상적으로 출력하기 위해서는 어떻게 해야 할까?
방법은 생각보다 간단하다. 그냥 list() 함수나 tuple() 함수의 인자에 reversed() 함수를 넣어서 출력하는 방법이나 join() 함수를 사용해서 문자열처럼 출력할 수도 있다.

l = ['a', 'b', 'c']
t = ('a', 'b', 'c')
str = 'abc'

print(list(reversed(l)))
print(tuple(reversed(t)))

print("".join(reversed(l)))
print("".join(reversed(t)))
print("".join(reversed(str)))

## 실행 결과 ##
# ['c', 'b', 'a']
# ('c', 'b', 'a')
# cba
# cba
# cba
profile
조금씩 정리하자!!!

0개의 댓글