Python 프로그래밍 언어에는 두 가지 유형의 루프가 있습니다. for 루프 그리고 while 루프 . 이러한 루프를 사용하여 Python에서 중첩 루프를 만들 수 있습니다. 중첩 루프는 루프 내부의 루프를 의미합니다. 예를 들어 for 루프 내부의 while 루프, for 루프 내부의 for 루프 등입니다.
굵은 텍스트 CSS

Python 중첩 루프
Python 중첩 루프 구문:
Outer_loop 표현식:
Inner_loop 표현식:
inner_loop 내부의 명령문
Outer_loop 내부의 문
Python 중첩 루프 예
예제 1: Python 중첩 루프의 기본 예
파이썬3
x>=> [>1>,>2>]> y>=> [>4>,>5>]> for> i>in> x:> >for> j>in> y:> >print>(i, j)> |
>
>
산출:
1 4 1 5 2 4 2 5>
파이썬3
x>=> [>1>,>2>]> y>=> [>4>,>5>]> i>=> 0> while> i <>len>(x) :> >j>=> 0> >while> j <>len>(y) :> >print>(x[i] , y[j])> >j>=> j>+> 1> >i>=> i>+> 1> |
>
>
시간 복잡도: 에2)
보조 공간: 오(1)
예제 2: Python 중첩 for 루프를 사용하여 곱셈표 인쇄
파이썬3
자바 끝
# Running outer loop from 2 to 3> for> i>in> range>(>2>,>4>):> ># Printing inside the outer loop> ># Running inner loop from 1 to 10> >for> j>in> range>(>1>,>11>):> ># Printing inside the inner loop> >print>(i,>'*'>, j,>'='>, i>*>j)> ># Printing inside the outer loop> >print>()> |
>
>
산출:
2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18 2 * 10 = 20 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27 3 * 10 = 30>
시간 복잡도: 에2)
보조 공간: 오(1)
위의 예에서 우리가 하는 일은 2와 3의 곱셈표에 대해 2에서 3까지 실행되는 외부 for 루프를 취하는 것입니다. 그런 다음 그 루프 내에서 우리는 곱셈을 인쇄하는 내부에서 1에서 10까지 실행되는 내부 for 루프를 취합니다. 내부 루프의 각 반복 값에 반복 아래 출력에서 볼 수 있듯이 외부 루프의 값입니다.
예 3: 서로 다른 내부 및 외부 중첩 루프를 사용하여 인쇄
파이썬3
# Initialize list1 and list2> # with some strings> list1>=> [>'I am '>,>'You are '>]> list2>=> [>'healthy'>,>'fine'>,>'geek'>]> # Store length of list2 in list2_size> list2_size>=> len>(list2)> # Running outer for loop to> # iterate through a list1.> for> item>in> list1:> > ># Printing outside inner loop> >print>(>'start outer for loop '>)> ># Initialize counter i with 0> >i>=> 0> ># Running inner While loop to> ># iterate through a list2.> >while>(i # Printing inside inner loop print(item, list2[i]) # Incrementing the value of i i = i+1 # Printing outside inner loop print('end for loop ')> |
>
>
자바 난수
산출:
start outer for loop I am healthy I am fine I am geek end for loop start outer for loop You are healthy You are fine You are geek end for loop>
시간 복잡도: 에2)
보조 공간: 오(1)
이 예에서는 일부 문자열을 사용하여 두 개의 목록을 초기화합니다. len() 함수를 사용하여 list2의 크기를 'list2_Size'에 저장하고 이를 while 루프에서 카운터로 사용합니다. 그 후 외부 for 루프를 실행하여 list1을 반복 그리고 해당 루프 내에서 내부 while 루프를 실행하여 list1의 모든 값에 대해 list2의 각 값을 인쇄하는 내부 목록 인덱싱을 사용하여 list2를 반복합니다.
중첩 루프에서 break 문 사용
일종의 루프 제어문입니다. 루프에서는 다음을 사용할 수 있습니다. break 문 루프를 종료합니다. 루프에서 break 문을 사용하면 나머지 반복을 건너뛰고 루프를 종료합니다. 예를 들어 이해해 봅시다.
암호:
파이썬3
# Running outer loop from 2 to 3> for> i>in> range>(>2>,>4>):> ># Printing inside the outer loop> ># Running inner loop from 1 to 10> >for> j>in> range>(>1>,>11>):> >if> i>=>=>j:> >break> ># Printing inside the inner loop> >print>(i,>'*'>, j,>'='>, i>*>j)> ># Printing inside the outer loop> >print>()> |
>
>
산출:
2 * 1 = 2 3 * 1 = 3 3 * 2 = 6>
시간 복잡도: 에2)
보조 공간: 오(1)
위의 코드는 예제 2와 동일합니다. 이 코드에서는 다음을 사용하여 내부 루프 내부에 break 문을 사용하고 있습니다. if 문 . 내부 루프 내부에서 'i'가 'j'와 같으면 내부 루프가 종료되고 출력 테이블에서 볼 수 있듯이 나머지 반복은 실행되지 않습니다. 3은 다음 반복에서 최대 2번의 반복으로 인쇄됩니다. 'i'는 'j'와 같아지고 루프가 중단됩니다.
중첩 루프에서 continue 문 사용
continue 문도 루프 제어문의 한 유형입니다. 이는 break 문의 정반대입니다. continue 문은 루프를 강제로 다음 루프 반복으로 점프하는 반면, break 문은 루프를 종료합니다. 코드를 이용하여 이해해보자.
파이썬3
# Running outer loop from 2 to 3> for> i>in> range>(>2>,>4>):> ># Printing inside the outer loop> ># Running inner loop from 1 to 10> >for> j>in> range>(>1>,>11>):> >if> i>=>=>j:> >continue> ># Printing inside the inner loop> >print>(i,>'*'>, j,>'='>, i>*>j)> ># Printing inside the outer loop> >print>()> |
>
>
산출:
2 * 1 = 2 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18 2 * 10 = 20 3 * 1 = 3 3 * 2 = 6 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27 3 * 10 = 30>
시간 복잡도: 에2)
자바 if else 문
보조 공간: 오(1)
위 코드에서는 break 문 대신 continue 문을 사용하고 있습니다. 여기서 내부 루프에서 'i'가 'j'와 같게 되면 내부 루프의 나머지 코드를 건너뛰고 출력에서 볼 수 있듯이 다음 반복으로 점프합니다. 2 * 2 = 4 및 3 * 3 = 9는 다음과 같습니다. 그 시점에서 'i'는 'j'와 같아지기 때문에 인쇄되지 않습니다.
목록 이해를 사용하는 한 줄 중첩 루프
여러 줄의 중첩 루프를 한 줄로 변환하려면 다음을 사용합니다. Python의 목록 이해 . 목록 이해에는 각 요소에 대해 실행되는 표현식과 목록의 각 요소를 반복하는 for 루프로 구성된 대괄호가 포함됩니다.
목록 이해의 구문:
새로운 목록 = [ 표현식(요소) ~을 위한 요소 ~에 이전 목록 만약에 상태 ]
암호:
파이썬3
# Using list comprehension to make> # nested loop statement in single line.> list1>=> [[j>for> j>in> range>(>3>)]> >for> i>in> range>(>5>)]> # Printing list1> print>(list1)> |
>
>
산출:
[[0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2]]>
위 코드에서는 목록 이해 [j for j in range(3)]의 내부 루프에서 목록 이해를 사용하여 목록 내부에 목록을 저장하여 외부 반복의 모든 반복에 대해 목록 [0, 1, 2]를 만듭니다. 범위(5)에 있는 i에 대해 루프를 실행합니다.
시간 복잡도: 에2) 중첩 루프보다 빠릅니다.
보조 공간: 에)