반응형
1. reverse()
reverse()는 list타입에서만 사용 가능한 함수이다.
lst = ['a', 'b', 'c']
tpl = ('a', 'b', 'c')
dict = {'a': 1, 'b':2, 'c': 3}
s = 'abc'
lst.reverse()
tpl.reverse() #AttributeError: 'tuple' object has no attribute 'reverse'
dict.reverse() #AttributeError: 'dict' object has no attribute 'reverse'
s.reverse() #AttributeError: 'str' object has no attribute 'reverse'
print(lst) #['c', 'b', 'a']
위에서 보시다시피 list타입만 reverse가 적용되었으며 나머지는 오류가 발생한다.
2. reversed()
reversed()는 파이썬 내장 함수로, list 외의 다른 타입에서도 사용이 가능하다.
단, dict 타입은 index로 이루어진 구성이 아니기 때문에 reversed가 불가능하다.
lst = ['a', 'b', 'c']
tpl = ('a', 'b', 'c')
s = 'abc'
r_lst = reversed(lst)
r_tpl = reversed(tpl)
r_s = reversed(s)
print(reversed(lst)) #<list_reverseiterator object at 0x7fdd027d4ac0>
print(reversed(tpl)) #<reversed object at 0x7fdd027d4ac0>
print(reversed(s)) #<reversed object at 0x7fdd027d4ac0>
print(list(r_lst)) #['c', 'b', 'a']
print(tuple(r_tpl)) #['c', 'b', 'a']
print(''.join(r_s)) #cba
출력할 때는 list와 tuple은 각 값으로 변환하여 출력하고
만약 str 형식으로 만들고 싶다면 join을 통해 각 요소들을 연결하여 str처럼 출력하면 된다.
3. 차이
reverse()는 해당 값 자체를 역순으로 뒤집어준다.
reversed()는 바꿔주고자 하는 값이 바뀌진 않으며 다른 변수에 저장해주어야 한다.
lst = ['a', 'b', 'c']
lst2 = ['a', 'b', 'c']
lst.reverse()
reversed(lst2)
print(lst) #['c', 'b', 'a'] - 값이 바뀜
print(lst2) #['a', 'b', 'c'] - 값이 안바뀜
r = reversed(lst2) # 변수 r에 저장
print(list(r)) #['c', 'b', 'a'] - 값이 바뀜
반응형
'Language > Python' 카테고리의 다른 글
[Python] 리스트에 특정 값이 있는지 체크하기 (0) | 2022.10.02 |
---|---|
[Python] sys.stdin.readline 입력 받기 (0) | 2022.09.30 |
[Python] 현재 날짜 가져오기 (0) | 2022.08.08 |
[Python] print() 정리 및 예제 (0) | 2022.08.05 |
[Python] TypeError: 'list' object is not callable 에러 (1) | 2022.07.19 |
댓글