본문 바로가기
코딩 연습/파이썬 기초(예제)

파이썬 리스트의 reverse()와 reversed()

by good4me 2023. 3. 26.

goodthings4me.tistory.com

reverse()는 리스트 원본 요소들을 역순으로 뒤집어주는 함수인 반면, reversed()는 리스트 요소들을 뒤집어주는 것은 같지만 원본 요소들을 변경하는 것이 아니라 리스트를 인자로 받아 새로운 이터레이터(iterator)를 반환하기 때문에 사용법이 다르다.

 

 

파이썬 리스트의 reverse()와 reversed() 함수의 차이점

[파이썬 예제 코드]

lst = [1, 2, 3, 4, 5]
print(lst)  # [1, 2, 3, 4, 5]
lst.reverse()
print(lst)  # [5, 4, 3, 2, 1]
# reverse()는 lst 자체를 변경시킴

lst2 = [4, 5, 6, 7, 8]
print(lst2)  # [4, 5, 6, 7, 8]
reversed(lst2)  # 또는 lst2.__reversed__
print(lst2)  # [4, 5, 6, 7, 8]
# reversed()는 원본 변경이 안됨

lst_i = reversed(lst2)
print(lst_i)
# list_reverseiterator object at 0x000001E905AFE400>
print(list(lst_i))

## 리스트 컴프리헨션 사용하기
lst3 = reversed(lst2)
print(lst3)  #  	
print([l for l in reversed(lst2)])  # [8, 7, 6, 5, 4]
print(list(lst3))  # [8, 7, 6, 5, 4]
# 다른 변수에 저장하여 그 값을 사용하면 됨

reversed(lst2)처럼 리스트를 인자로 받지만, 원본을 변경하는 것이 아니라 뒤집은 결과를 이터레이터로 반환하기 때문에 리스트로 표현하기 위해서는 list(lst_i) 처럼 해야 함

 

good4me.co.kr

 

댓글