본문 바로가기

Programming Language/Python( 파이썬 )

파이썬 거꾸로 뒤집기 , list 순서 뒤집기 4가지 방법( Python reversed/ reverse)

반응형

파이썬 순서 뒤집는 방법을 4가지 방식으로 표현해보았습니다. 

물론 이 방법들 말고도 편하고 좋은 방법들이 많지만, 이 표현식을 참고해 다른 방법으로 표현하는데 많은 도움이 됐으면 좋겠습니다.

우선 문제를 보면,

Q. 자연수 n의 순서를 뒤집은 숫자를 표현하시오.

물론 그 값이 리스트[ ], int() 등의 다양한 방식으로 출력이 가능합니다. 그러나 그것은 문제마다 다르기 때문에 다양한 표현식으로 정답을 출력해보고자 합니다.

예를 들어서, n이 98765 라고 입력하면, 값을 56789로 뒤집어서 리턴하거나 [5, 6, 7, 8, 9] 이렇게 리스트로 정답을 리턴하라는 것으로 문제를 이해하면 됩니다. 

방법 1

#input에 98765을 입력하면 5,6,7,8,9 가 리스트 출력
n = input()
print(list(map(int,n))[::-1])

 

사진의 방법처럼 map 식을 사용해주어 숫자 n을 int값으로 끝(-1)자리부터 앞까지 출력하는 것을 list화 할 수 있습니다. 

정답 출력을 보면 리스트 형식으로 슬라이싱되어 답이 출력되는 것을 확인할 수 있습니다.

 

방법 2.

1

z = input('')
z_list = list(z)  # reverse 함수를 사용하기 위해 문자열을 list로 치환
z_list.reverse()  # reverse 함수를 사용해 문자열 리스트를 거꾸로 뒤집음

print(''.join(z_list))  # 거꾸로 뒤집어진 리스트를 연결해서 출력

방법 1방법 1ㅇ

이렇게 위의 방법을 사용하면 input 값에 정답을 넣을 수 있고, z_list에 그 원본 리스트화를 저장한 후 .reverse() 해주면 위 두번째 사진과 같이, 12345가 역순으로 프린트 되는 것을 확인할 수 있습니다. 이는 단순 숫자 순서를 바꿔준 답이기에 이 방법으로 정답을 제출해야 할 경우 이렇게 제출하면 됩니다.

 

방법 3.

def map_reverse(z):
    return list(map(int, reversed(str(z))))
map_reverse(54321)

 

return 값 안에 map으로 지정하는 부분이 추가되어있다.

 

다음 세번째 방법은 함수를 이용하여 해결해보았습니다. input은 사용하지 않았지만, 저 함수식에 원하는 숫자를 입력하면 list로 식이 출력이 가능합니다. 입력한 숫자가 정답에 포함되지 않고 출력되기에 오히려 깔끔한 답을 출력할 수 있습니다.

 

방법 4.

def for_reverse(z):
    return [int(i) for i in str(z)][::-1]
for_reverse(54321)

return 값 안에 for문이 추가되어있다

마무리를 장식할 네번째 방법 또한 함수를 이용하여 해결했습니다. 위 방법3과 유사해보이지만 i를 추가하여 for문을 돌려 그 값을 거꾸로 인덱싱하여 추출하는 방법입니다. for문(방법4)map(방법3)의 차이를 이해하시면서 보면 좋을 것 같습니다 :) 

부족하지만 오늘도 티끌 코딩 글 한 줄이, 여러분의 코딩에 도움이 되었으면 좋겠습니다. 

힘이 되었으면 좋겠습니다. 항상 건강 챙기시고 행복한 하루 되세요. 

반응형