1. reverse()함수
reverse함수는 리스트타입에서 제공하는 함수입니다. 따라서 반환값이 없고 단순히 리스트를 뒤집어주는 역할을 합니다.
따라서 리스트에서만 사용이 가능하고 튜플과 딕셔너리, 문자열에서는 사용할 수 없습니다.
my_list = [ 1, 2, 3, 4 ]
my_dict = { 'a' : 1, 'b' : 2, 'c' : 3 }
my_tuple = (1, 2, 3)
my_string = '123'
my_list.reverse() # [ 4, 3, 2, 1 ]
my_dict.reverse() # error
my_tuple.reverse() # error
my_string.reverse() # error
반환값이 없기에 변수에 값을 저장해 줄 수 없습니다.
my_list = [ 1, 2, 3, 4 ]
r_list = my_list.reverse()
print(r_list) #1
print(my_list)
결과)
None #1
[4, 3, 2, 1]
반환값이 없어서 r_list는 출력하면 None이라고 뜨게됩니다.
2. reversed함수
reversed는 내장함수로 리스트와 함께 문자열, 튜플도 지원합니다.
하지만 딕셔너리는 지원하지 않습니다.
my_list = [ 1, 2, 3, 4 ]
my_dict = { 'a' : 1, 'b' : 2, 'c' : 3 }
my_tuple = (1, 2, 3)
my_string = '123'
reversed(my_list)
reversed(my_dict) # error
reversed(my_tuple)
reversed(my_string)
리스트나 튜플, 문자열은 순차적인 타입이므로 가능하지만 딕셔너리는 그렇지 않기 때문에 사용할 수 없습니다.
reversed함수는 반환값을 가집니다. 그래서 변수에 값을 저장할 수 있습니다.
reversed함수는 reversed 타입을 반환합니다.
my_list = [ 1, 2, 3, 4 ]
my_dict = { 'a' : 1, 'b' : 2, 'c' : 3 }
my_tuple = (1, 2, 3)
my_string = '123'
print(reversed(my_list))
print(reversed(my_dict))
print(reversed(my_tuple))
print(reversed(my_string))
결과)
<list_reverseiterator object at 0x0000014BB5907B80>
<dict_reversekeyiterator object at 0x000002103E9C6F20>
<reversed object at 0x000001A2D2CE7B80>
<reversed object at 0x0000024C9EA07B80>
리스트는 list_reverseiterator를 반환하지만 reversed 타입을 반환하는 튜플, 문자열과 사용법은 같습니다.
이렇게 reversed 타입을 반환하기 때문에 원하는 값을 얻기 위해서는 형변환을 한번 더 해주어야 합니다.
my_list = [ 1, 2, 3, 4 ]
my_dict = { 'a' : 1, 'b' : 2, 'c' : 3 }
my_tuple = (1, 2, 3)
my_string = '123'
print(list(reversed(my_list)))
print(reversed(my_dict)) # 사용불가
print(tuple(reversed(my_tuple)))
print(''.join(reversed(my_string)))
결과)
[4, 3, 2, 1]
<dict_reversekeyiterator object at 0x00000212BDEF6B10>
(3, 2, 1)
321
딕셔너리 자료형은 사용할 수 없으므로 바꾸지 않고 놔뒀습니다. 리스트는 list()로 형 변환, 튜플은 tuple()로 형변환을 하지만 문자열은 ''.join()으로 리턴된 reversed object를 하나의 string으로 만들어 줍니다.
reversed함수 반복문 활용
my_list = [ 1, 2, 3, 4 ]
for i in list(reversed(my_list)):
print(i, end=' ')
결과)
4 3 2 1
반환값이 없는 reverse() 함수와 다르게 반환값이 있는 reversed함수는 반복문에 활용이 가능합니다.
'[Python]' 카테고리의 다른 글
[Python] f-string을 이용한 문자열 포메팅 (0) | 2022.07.22 |
---|---|
[Python] 문자열 루프, enumerate함수 (0) | 2022.07.19 |
[Python] math모듈과 ceil함수, floor함수 (0) | 2022.07.17 |
[Python] 2차원 배열과 3차원 배열 작성법 (0) | 2022.07.14 |
[Python] insert연산 (0) | 2022.07.13 |