리스트형 내장함수 변수 대입 관련

안녕하세요. 파이썬을 처음 공부하며 궁금한점이 생겨 질문남깁니다.

문자열 데이터를 리스트화 시킨 후 순서를 뒤집을 때
아래와 같이 reverse 함수를 아래와 같이 작성할경우 잘 동작합니다.
a = "python"
b = list(a) → ['p', 'y', 't', 'h', 'o', 'n']
b.reverse()
b → ['n', 'o', 'h', 't', 'y', 'p']

하지만 아래와 같이 c라는 변수에 바로 대입시키려고 하니
b변수의 리스트는 뒤집어지지만 c에는 아무 값도 없다고 나옵니다.
a = "python"
b = list(a) → ['p', 'y', 't', 'h', 'o', 'n']
c = b.reverse()
c → none
b → ['n', 'o', 'h', 't', 'y', 'p']

c변수에 뒤집은 리스트를 대입시키려 하면
b.reverse()
c = b
꼭 위와같이 별도로 c에 b가 가리키는 객체를 동일하게 대입시키는 방법밖에 없나요?

anjun5251 389

2020년 11월 11일 8:43 오전

목록으로
1개의 답변이 있습니다. 1 / 1 Page

안녕하세요.

b.reverse() 는 b리스트 자체를 뒤집기만 하고 그 결과를 리턴하지 않습니다.
왜냐하면 파이썬 리스트의 reverse라는 메서드는 리턴값이 없기 때문입니다.
뒤에 함수나 클래스 부분을 공부하시면 리턴값이 있는 경우와 없는 경우의 차이점에 대해서 알 수 있으실 겁니다.

하지만 reversed(b) 처럼 reversed라는 빌트인함수를 사용하면 b의 뒤집어진 결과를 리턴받을 수 있습니다.

>>> b = [1, 2, 3]
>>> for i in reversed(b):
...     print(i)
...
3
2
1

박응용

2020년 11월 11일 8:57 오전

답변 감사합니다. - anjun5251님, 2020년 11월 11일 9:21 오전 추천 , 대댓글