본문 바로가기

Programming Language/Python( 파이썬 )

파이썬(Python) 리스트 거꾸로 뒤집기 (reverse/ reversed/ for 반복문 이용)

반응형

 

오늘은 파이썬 리스트 뒤집기에 대해서 배워보도록 하겠습니다.

방법은 간단합니다. 파이썬에 내재되어있는 reverse 와 reversed 를 이용하여 리스트 안에 있는 각각의 순서를 거꾸로 뒤집어주면 됩니다. 물론 reverse 나 reversed 같은 sort 함수를 사용해도 되지만, 반복문을 통해서도 가능합니다. 일단 간단한 방법 (= sort reverse나 reversed로 진행하는걸 먼저 보고 복잡한 방법을 보시도록 하겠습니다. 예시로 한번 만나보시죠 ! 

 

 1. reverse sort 함수 활용해서 리스트(list) 뒤집기

 

사용 코드 공유 

infinite_challenge = ['재석', '명수', '준하', '홍철', '형돈', '하하', '길']
infinite_challenge.reverse()

print(infinite_challenge)

실행코드

 

 가장 기본적인 정리 방법입니다. 파이썬에 내재되어있는 reverse를 사용하면 이렇게 list(리스트)에 들어있는 요소들을 반대로 출력이 가능합니다. 밑의 reversed와 비교해보면 list에 reverse가 사용하기 비교적 최적화되어있어서, 에러코드 없이 잘 작동하는 것을 볼 수 있습니다. 혹시나 코드를 단순화 하고 최대한 간결하게 사용하셔야하는 경우에는 reverse 메소드를 이용하시는 것이 적합하다고 보여집니다.

 

 

 

 

2. reversed 활용해서 리스트(list) 뒤집기

 

사용 코드 공유

infinite_challenge = ['재석', '명수', '준하', '홍철', '형돈', '하하', '길']
list(reversed(infinite_challenge))

실행코드

 

이번엔 reversed를 사용한 코드입니다. 리스트의 경우 list에서 제공하는 기본 함수가 아닙니다. 그렇기에 그냥 reversed(infinite_challenge)를 불러오면 에러코드가 납니다. 즉, reversed는 내장함수고, list에 기본적으로 적합한 함수가 아닙니다. 순차적인 인덱스로 접근할 수 없기 때문이죠. 그렇기에 한번에 함수로 지정은 못하고 위와 같은 순서로 불러내야 하는 겁니다.

 

 

 

3. for 반복문  활용해서 리스트(list) 뒤집기

사용 코드 공유

team = ['재석', '명수', '준하', '홍철', '형돈', '하하', '길', '태호']

for right in range(len(team) // 2):
    left = len(team) - right - 1

    # 리스트 안의 값이 사라지기 전에 일시저장하는  temp
    temp = team[right]
    team[right] = team[left]
    team[left] = temp

print(team)

실행 코드

 확실히 for 반복문을 사용하여 안에 값을 수정하려고 하면 없어지는 수에 대한 경계가 조금 있는 것 같습니다. 어떠한 값을 대체하더라도 temp 라는 변수로 일시적으로 저 값을 저장하고, 또 그 안에서 값을 어떠한 변수가 받아갈 수 있게 만드는 것이 중요한 문제입니다. 이러한 문제점을 생각하는 것은 피보나치 수열에서도 나오고 여기 저기서 나오니깐 꼭 리스트 뒤집기를 공부하시면서도 손과 머리에 익숙해 지셨으면  좋겠습니다.

 특히 for 문 안의 조건 중 // 2 를 한 이유는 for문이 다 돌아간다면 다시 원상복귀 되는 것이기에 지정해주었습니다. 즉, 180도를 돌아야지 뒤집는다고 말할 수 있는데, for문을 다 돌면 리스트를 뒤집은게 아니라 한바퀴 삥 돌고 다시 원상복귀가 되는 360도가 됩니다. 그렇기에 // 2 를 해주어 딱 절반 까지만 for문이 진행 되도록 range 에 len // 2 를 걸어놨습니다.

 

저의 아주 작은 티끌 코딩 글이

블로그 방문자 님의 코딩에 도움이 됐으면 좋겠습니다.

 

좋아요(❤) 버튼 ↙은 항상 감사합니다 : )

반응형