오늘은 파이썬 리스트 뒤집기에 대해서 배워보도록 하겠습니다.
방법은 간단합니다. 파이썬에 내재되어있는 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 를 걸어놨습니다.
저의 아주 작은 티끌 코딩 글이
블로그 방문자 님의 코딩에 도움이 됐으면 좋겠습니다.
좋아요(❤) 버튼 ↙은 항상 감사합니다 : )
'Programming Language > Python( 파이썬 )' 카테고리의 다른 글
Q. 파이썬에서 리스트 오름차순 과 내림차순 으로 정렬하는 방법은 어떻게 되나요??? (sort 와 sorted 의 차이점은 ?? reverse) (0) | 2021.06.30 |
---|---|
파이썬(Python) for문 구조와 for in range 활용 예시를 통해 파악해보겠습니다. (0) | 2021.06.26 |
파이썬(Python) 약수 구하기 [모두 출력하기 / 약수 개수/ input 활용] (0) | 2021.06.17 |
파이썬 format, f-string (여러가지 포맷팅 방법에 대한 예시) (0) | 2021.06.11 |
파이썬 int, float, str에 대한 이해와 형변환.( 숫자형 / 문자형) (0) | 2021.06.10 |