Python(파이썬) reverse 와 reversed의 차이 and 리스트, 튜플을 문자열로 만들기(by. join)

Code_Angler·2021년 5월 24일
2

code study by PyCharm

목록 보기
15/16

- 파이썬에서 리스트의 요소를 뒤집을때 reverse와 reversed를 이용한다.

그 차이는 무엇인지에 대해 알아보자!!

1. 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']

2. reversed

reversed는 내장함수로, list에서 제공하는 함수가 아니다.

기본형 = reverse(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>

딕셔너리는 순서가 있는 타입이 아니므로 지원하지 않는다.

또한 print를 하였을때 속성값이 나온다.

변환된 값을 출력하고싶을때는

아래와 같이

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')

string을 변환하기 위해서 는 다른 방법이 필요하다

list와 tuple을 모두 문자열로 만들수 있는 join이라는 함수가 있다.

l = ['a', 'b', 'c']

''.join(l)  # 'abc'
j = ''.join(l)
rj =''.join(reversed(l))

print(j)
print(rj)

---------------------------------------
# result

abc
cba
profile
CodeAngler

0개의 댓글