1) 중첩 루프(nested loop)
중첩 루프에 대해 알아보자.
중첩 루프의 "루프"는 반복을 의미하고 "중첩"은 말 그대로 여러 개가 있다는 의미이다. 즉, 반복문이 여러 개 겹쳐있는 것을 보고 중첩 루프라고 한다.
이중 루프의 예시를 보도록 하자
>>>for i in [1, 2, 3, 4, 5]:
for a in [1, 2, 3, 4]:
pass
>>>
위 코드는 반복문 2개가 사용된 이중 루프이다.
중첩 루프는 어떤 경우에 사용되는지 자세히 다루어 보자.
아파트 택배 배달을 관리하는 프로그램을 만들어보자
1층엔 [101호, 102호, 103호] 2층엔 [201호, 202호, 203호] 3층엔 [301호, 302호, 303호]가 있다.
이와 같이 행과 열의 형식으로 되어있는 데이터를 '2차원 데이터'라고 한다.
2차원 데이터는 평소에 우리가 다루던 데이터와 큰 차이가 있는데, 그것은 리스트 안에 리스트로 데이터를 표현할 수 있다는 것이다.
>>> apart = [[101, 102, 103], [201, 202, 203], [301, 302, 303]]
>>>
아파트의 각 세대들을 층 별로 나누어 배열로 표현하면 이렇게 표현할 수 있다.
위 배열을 인덱싱을 통해 데이터에 접근해보자.
>>> apart[0]
[101, 102, 103]
>>> apart[1][2]
203
>>>
이 처럼 인덱싱을 통해 리스트 안에 리스트에 접근하고 또 다시 인덱싱을 통해 리스트 데이터에 접근할 수 있다.
그럼 이제 본격적으로 택배 배달 관리 프로그램을 만들어보자.
>>> for i in apart:
for j in i:
print( j, "호 배달완료!")
101 호 배달완료!
102 호 배달완료!
103 호 배달완료!
201 호 배달완료!
202 호 배달완료!
203 호 배달완료!
301 호 배달완료!
302 호 배달완료!
303 호 배달완료!
>>>
위 코드의 변수 i는 [101, 102, 103], [201, 202, 203], [301, 302, 303]라는 리스트를 순서대로 바인딩하게 되고, 변수 j는 각 리스트에 있는 숫자들을 순서대로 바인딩하게 되어 위와 같은 결과가 나온다.
'파이썬' 카테고리의 다른 글
05/04 파이썬 10 - while, break, continue (0) | 2020.05.04 |
---|---|
05/02 파이썬 9 - 파이썬의 for문 (0) | 2020.05.02 |
05/02 파이썬 8 - 파이썬의 if 문 (0) | 2020.05.02 |
04/29 파이썬 7 - boolean, 비교연산자, 논리연산자 (0) | 2020.04.29 |
04/28 파이썬 6 - 튜플과 딕셔너리 (0) | 2020.04.28 |