Language/Python
[Python] reverse, reversed 차이
ye_ju
2023. 7. 11. 19:53
reverse, reversed는 파이썬에서 리스트의 요소를 뒤집을 때 사용합니다.
이 두개의 차이점을 알아보도록 하겠습니다.
📌 reverse
reverse는 list 타입에서 제공하는 함수입니다. list.reverse()
l = [' t', 'o', 'p'] # list타입
t = ('t', 'o', 'p') # tuple 타입
d = {'t': 1, 'o': 2, 'p': 3} # dict 타입
s = 'top' # string 타입
-------------------------------------------------------
l.reverse() # list의 순서를 뒤집어줌
t.reverse() # AttributeError: 'tuple' object has no attribute 'reverse'
d.reverse() # AttributeError: 'dict' object has no attribute 'reverse'
s.reverse() # AttributeError: 'str' object has no attribute 'reverse'
print(l[:])
---------------------------------------------
# result
['p', 'o', 't']
리스트 값을 반환하는 것이 아니라 변환시켜주기 때문에 print(l.reverse())라는 것은 None으로 출력됩니다.
l = ['a', 'b', 'c']
l_reverse = l.reverse()
print(l_reverse)
print(l)
-------------------------------
# result
None
['c', 'b', 'a']
📌 reversed
reversed는 내장함수로, list에서 제공하는 함수가 아닙니다. reversed(var)
l = [' t', 'o', 'p'] # list타입
t = ('t', 'o', 'p') # tuple 타입
d = {'t': 1, 'o': 2, 'p': 3} # dict 타입
s = 'top' # string 타입
reversed(l) # <listreverseiterator object at 0x101053c10>
reversed(t) # <reversed object at 0x101053b50>
reversed(d) # TypeError: argument to reversed() must be a sequence
reversed(s) # <reversed object at 0x101053c10>
print(reversed(l))
print(reversed(t))
print(reversed(s))
-------------------------------------------------
# result
<list_reverseiterator object at 0x0000019540D7A130>
<reversed object at 0x0000019540D7A130>
<reversed object at 0x0000019540D7A130>
속성값이 나오로 변환된 값을 출력하고 싶을 때는 아래와 같이 작성해주시면 됩니다.
l = ['a', 'b', 'c']
t = ('a', 'b', 'c')
s = 'abc'
list_1 = list(reversed(l)) # ['c', 'b', 'a']
tuple_1 = tuple(reversed(t)) # ('c', 'b', 'a')
string = str(reversed(s))
string_list = list(reversed(s))
string_tuple = tuple(reversed(s))
print(list_1)
print(tuple_1)
print(string)
print(string_list)
print(string_tuple)
-------------------------------------------------
# result
['c', 'b', 'a']
('c', 'b', 'a')
<reversed object at 0x000002E2699BA130>
['c', 'b', 'a']
('c', 'b', 'a')
지금까지 글을 읽어주셔서 감사합니다!