파이썬 tuple형태 반환 (feat. enumerate())
*내용은 파이썬 300제의 문제풀이입니다. 문제를 푸실 분들은 포스팅을 보기 전에 문제를 먼저 풀어보세요.
171 ~ 180
.answer {margin-top: 10px;margin-bottom: 50px;padding-top: 10px;border-top: 3px solid LightGray ...
wikidocs.net
파이썬 300제 #172번 문제는 다음과 같다.
# 172
# 아래와 같이 리스트의 데이터를 출력하라. 단, for문과 range문을 사용하라.
# price_list = [32100, 32150, 32000, 32500]
# 0 32100
# 1 32150
# 2 32000
# 3 32500
내가 처음 풀었던 방식은,
price_list = [32100, 32150, 32000, 32500]
for i in range(4):
print(i, price_list[i])
단순하게 range를 4로 잡고 i와 리스트를 출력해주는 방식이다. 답지를 보니 파이썬 내장함수인 enumerate()를 사용했다. 답지의 답은 아래와 같다.
price_list = [32100, 32150, 32000, 32500]
for i, data in enumerate(price_list):
print(i, data)
enumerate는 '열거하다.'라는 말이다. 말 그대로 price_list안의 원소들을 하나씩 열거해준다.
여기서 궁금한 점이 생겼다. data를 출력하지 않으면 어떻게 될까?
price_list = [32100, 32150, 32000, 32500]
for i in enumerate(price_list):
print(i)
>>>(0, 32100)
>>>(1, 32150)
>>>(2, 32000)
>>>(3, 32500)
위와 같이 튜플형태로 출력이 된다. 그래서 관련된 내용을 찾아봤다.
파이썬의 내장함수인 enumerate()는 다른 프로그래밍 언어에 없는 독특한 방식의 루프를 돌리는 방법이라고 한다. 따라서 enumerate()를 쓴다는 것은 파이썬적인 코드를 작성하는 것이라고 볼 수 있다.
enumerate() 함수는 인덱스와 원소에 동시에 가져오면서 이를 튜플 형태로 만든다. 튜플은 변경이 불가능한 객체(immutable)이기 때문에 인덱스와 원소에 각각 변수를 할당하기 위해 인자 풀기(unpacking)라는 것을 한다.
그래서 답지처럼 인덱스에는 i, 원소에는 data라는 변수를 각각 지정해주고 프린트하면 튜플이 아닌 형태로 출력이 되는 것이다. 더 자세한 내용은 아래 링크에서 확인할 수 있다.
https://www.daleseo.com/python-enumerate/
[파이썬] enumerate 내장 함수로 for 루프 돌리기
Engineering Blog by Dale Seo
www.daleseo.com
파이썬 300제를 풀면 예전에 쎈수학을 풀 때와 같은 느낌이다. 쎈수학이 좋았던 점은 문제를 풀면서 개념을 찾아보고, 다시 또 반복해서 풀면서 체화(?)하는 방식이어서 개념+문제풀이 다 잡을 수 있는 공부방식이었다. 수학 잘하는 애들 중에 쎈수학만 파는 애들도 종종 있었다. 기초를 다지는 동안 매일매일 반복하기.
'파이썬 테스트 [Python]' 카테고리의 다른 글
파이썬 이차원 리스트 문제 (feat. reverse, reversed의 차이) (28) | 2022.01.20 |
---|---|
파이썬 주민등록번호 유효성 검사 (27) | 2022.01.07 |
파이썬 턴제(Turn-based Strategy) 게임 (4) | 2021.12.22 |
파이썬 베스킨라빈스 31게임 (12) | 2021.12.21 |
파이썬 숫자 맞추기 게임(업다운 게임) (18) | 2021.12.20 |
댓글