У мові програмування Python є два типи циклів для циклу і цикл while . Використовуючи ці цикли, ми можемо створювати вкладені цикли в Python. Вкладені цикли означають цикли всередині циклу. Наприклад, цикл while всередині циклу for, цикл for всередині циклу for тощо.
аналоговий зв'язок

Вкладені цикли Python
Синтаксис вкладених циклів Python:
Вираз зовнішнього циклу:
Вираз внутрішнього циклу:
Інструкція всередині inner_loop
Інструкція всередині Outer_loop
Приклади вкладених циклів Python
Приклад 1: базовий приклад вкладених циклів Python
Python3
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>
Python3
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> |
>
>
Часова складність: O(n2)
трійчаста зима
Допоміжний простір: О(1)
Приклад 2: Друк таблиці множення за допомогою вкладених циклів for Python
Python3
# 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>
Часова складність: O(n2)
Допоміжний простір: О(1)
У наведеному вище прикладі ми беремо зовнішній цикл for, який працює від 2 до 3 для таблиці множення 2 і 3, а потім у цьому циклі ми беремо внутрішній цикл for, який працюватиме від 1 до 10, усередині якого ми друкуємо множення таблицю шляхом множення кожного значення ітерації внутрішнього циклу на ітерація значення зовнішнього циклу, як ми бачимо у вихідних даних нижче.
Приклад 3: друк із використанням різних внутрішніх і зовнішніх вкладених циклів
Python3
# 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 ')> |
>
>
stringformat
Вихід:
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>
Часова складність: O(n2)
Допоміжний простір: О(1)
У цьому прикладі ми ініціалізуємо два списки деякими рядками. Зберігайте розмір list2 у ‘list2_Size’ за допомогою функції len() і використовуючи його в циклі while як лічильник. Після цього запустіть зовнішній цикл for повторити список1 і всередині цього циклу виконуємо внутрішній цикл while для повторення списку list2, використовуючи індексацію списку, всередині якого ми друкуємо кожне значення list2 для кожного значення list1.
Використання оператора break у вкладених циклах
Це тип оператора керування циклом. У циклі ми можемо використовувати оператор розриву для виходу з циклу. Коли ми використовуємо оператор break у циклі, він пропускає решту ітерації та завершує цикл. розберемося на прикладі.
код:
Python3
# 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>
Часова складність: O(n2)
Допоміжний простір: О(1)
Наведений вище код такий самий, як у прикладі 2. У цьому коді ми використовуємо оператор break у внутрішньому циклі за допомогою оператор if . Усередині внутрішнього циклу, якщо «i» дорівнює «j», тоді внутрішній цикл буде припинено та не виконано, решта ітерації, як ми бачимо у вихідній таблиці 3, друкується до двох ітерацій, оскільки в наступній ітерації 'i' стає рівним 'j' і цикл розривається.
Використання оператора continue у вкладених циклах
Оператор continue також є типом оператора керування циклом. Це як раз протилежне оператору break. Оператор continue змушує цикл перейти до наступної ітерації циклу, тоді як оператор break завершує цикл. Давайте зрозуміємо це за допомогою коду.
Python3
актриса кіно реха
# 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>
Часова складність: O(n2)
Допоміжний простір: О(1)
У наведеному вище коді замість оператора break ми використовуємо оператор continue. Тут, коли «i» дорівнює «j» у внутрішньому циклі, він пропускає решту коду у внутрішньому циклі та переходить до наступної ітерації, як ми бачимо у вихідних даних 2 * 2 = 4 і 3 * 3 = 9. не друкується, тому що в цей момент «i» дорівнює «j».
Однорядкові вкладені цикли з використанням розуміння списку
Щоб перетворити багаторядкові вкладені цикли в один рядок, ми збираємося використовувати розуміння списку в Python . Розуміння списку включає дужки, що складаються з виразу, який виконується для кожного елемента, і циклу for для повторення кожного елемента в списку.
Синтаксис розуміння списку:
newList = [ вираз (елемент) для елемент в старий список якщо хвороба ]
код:
Python3
# 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 для j у діапазоні (3)], щоб створити список [0, 1, 2] для кожної ітерації зовнішнього цикл для i в діапазоні (5).
Часова складність: O(n2) Це швидше, ніж вкладені цикли
Допоміжний простір: O(n)