[파이썬] 공공데이터 활용해 포트폴리오 만들기(3)_for, while 반복문 ~ list comprehension
코딩을 학습했다면 이번 포스팅에서는
for, while 반복문을 작성해볼 예정이다.
전에 학습하면서 for,while 초반까지는 괜찮았는데
코드가 길어지고 복잡해지면서 어려워했던 기억이 있다.
그렇게 안되길 바라면서...
이번에도 초장에 확실이 잡고 넘어갈 예정이다.
[for, while 반복문]
전 포스팅에서 위와 같이 일일이 나누는 작업을 했다.
작업이 필요한 인수가 적을 땐 괜찮지만
인수가 많아질수록 효율적이지 못한 코드가 된다.
for, while반복문은 이럴 때 사용하는 코드다.
위와 같이 분리한 문자열을 넣어줄 리스트를 만들어주고
i라는 변수를 새로 만들어준다.
range(0,3)은 i라는 변수에 들어갈 숫자고
앞으로 작성할 코드의 i에 0,1,2 가 들어갈 예정이다.
코드가 다 같지만 split_list에 변수 i가 들어가고
split_list에 인수 3개가 있기 때문에 순서대로 반환된다.
만약, i에 넣고자 하는 수의 크기가 i의 범위보다 작다면
오류가 발생하므로 주의하자.
즉, 사진과 같이 반환을 원하는 인수의 개수가 3인데
range(0,3) 대신 (0,4)를 입력한다면 오류가 발생한다.
"While"
while은 for과 거의 동일하지만
for은 범위만 정해주면 출력이 되지만
while은 출력전에 조건 코드를 추가로 입력해주면서
사용자가 입력한 조건에 따라 반복하게 된다.
위 결과는 for과 반복문을 사용하지 않은 코드와 동일함.
하지만 i = i+1에서 확인할 수 있듯
i변수에 대한 특정 조건을 걸어줄 수 있다.
for은 i에 무조건 1단위로 증가하는 수를 넣었다면
while은 위와 같이 순서대로 증가하게 할 수 있고
짝수번째로 증가하게 할 수 있다.
혹은 i의 범위를 정해줬지만
if조건문을 사용해 강제 정지 시켜줄 수도 있다. (break)
[enumerate]
enumerate는 인덱스(위치)까지 알려주는 메서드이다.
for과 같이 쓰이면 성능이 강화되는 특징을 가지고 있다.
이 코드는 split_list를 enumerate해서
새로운 리스트에 담아달라는 뜻이다.
list로 감싸주지 않아도 오류나지는 않지만
원하는 결과가 나오지 않는다.
반환값은 (index, vaule) 형태로
즉, 튜플의 형태로 출력된다.
위에서 enumerate는 for반복문과 같이 쓰이면
그 쓰임새가 배가 된다고 했다. 예를들어,
이런 코드가 있다고 가정하자. 읽어보면
enumerate한 split_list에 있는 index, value가 있고
이것을 index별로 value를 strip해서 출력해줘.
가 된다. 그러면 오른쪽과 같은 결과를 얻게 된다.
cf) 여기서 vaule를 빼게 되면 오류가 난다.
이유는 튜플 타입이기 때문이다.
(위에 음영처리 참고)
그리고 이 코드를 출력하면
new_list4라는 빈 리스트를 만들어주고
new_list4에 strip한 value를 추가해줘 가 된다.
그리고 출력해보면
['apple', 'banna', 'kiwi] 로 출력되는 것을 알 수 있다.
[list comprehension]
list comprehension은 익숙해진다면 정말 편한 함수다
이 함수 전까지는 전부 새로운 리스트를 만들고
담아주는 과정을 거쳤다면, 이 함수는 바로 넣을 수 있다
(=한줄에 작성 가능 = 효율적인 코드)
이 코드를 보면 새로운 리스트를 만들어줌과 동시에
바로 코딩해서 결과를 출력할 수 있다.
(어렵게 생각하지말고 영어 읽는거마냥 읽어주자)
+ fruit은 임의로 만들어준 변수다. 다른 단어로 대체 가능!
읽어보면 fruit을 strip해줘, 그 fruit은
split_list에 있는 fruit들이야 정도로 해석하고 이해하자
그럼 동일하게 ['apple', 'banna', 'kiwi] 출력된다.
이번 포스팅에서는
반복문과 인덱싱을 활용한 반복문을 학습했다.
대학 수강과목으로 공부했을 때 꽤 애먹었던 부분이다.
처음에 간단한 코드로 짤 땐 쉬워보였지만
조금 복잡해질 수록 어려웠던 함수였다.
https://www.youtube.com/@mcodeM
(메타코드M의 서포터즈 활동으로
강의 수강권을 제공받아 쓰는 글
입니다.)
'Portfolio' 카테고리의 다른 글
[파이썬] 공공데이터 활용해 포트폴리오 만들기(4)_pandas(라이브러리) ~ 날짜데이터 처리 (0) | 2024.04.20 |
---|---|
[파이썬] 공공데이터 활용해 포트폴리오 만들기(2)_메서드(문자열 데이터)처리 ~ (2) | 2024.04.16 |
[파이썬] 공공데이터 활용해 포트폴리오 만들기(1)_파이썬 설치 및 기본적 문법~메서드(숫자데이터처리) (0) | 2024.04.15 |
[파이썬] 공공데이터 활용해 포트폴리오 만들기(0)_들어가며 (0) | 2024.04.15 |
[GA분석] 구글 머천다이즈 스토어 #1 (0) | 2022.05.29 |