Python 에는 이름이 비슷한 reverse, reversed 함수가 있습니다.
두 함수에 대해 살펴보겠습니다.
1. reverse()
list자료형의 함수로 list 타입에서만 사용 가능합니다.
list 요소를 역순으로 정렬합니다.
>>> listA = [1, 3, 5, 7, 9]
>>> tupleA = (1, 3, 5, 7, 9)
>>> tupleA.reverse()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'reverse'
>>> listA.reverse()
>>> listA
[9, 7, 5, 3, 1]
>>> listA.reverse()
>>> listA
[1, 3, 5, 7, 9]
>>> listA.reverse()
>>> listA
[9, 7, 5, 3, 1]
reverse 함수는 list요소가 역순으로 정렬된 새로운 list를 리턴하는 게 아니라
해당 함수를 사용한 원본 list의 요소를 역순으로 정렬한다.
계속 사용하면 계속 역순으로 정렬됩니다.
2. reversed()
파이썬의 내장 함수로써 iterable 객체의 요소를 역순으로 하여 리턴합니다.
사용한 객체를 변경하지 않고 요소가 역순으로 정렬된 reversed객체를 반환합니다.
>>> listA = [1, 3, 5]
>>> strA = 'hello'
>>> reversed(strA)
'<reversed object at 0x01C26268>'
>>> list(reversed(listA))
[5, 3, 1]
>>> ''.join(list(reversed(strA)))
'olleh'
reversed 객체를 반환하기 때문에 list나 tuple 등으로 변환하여 사용합니다.