logo

Pętle zagnieżdżone w Pythonie

W języku programowania Python istnieją dwa typy pętli: dla pętli I pętla while . Używając tych pętli, możemy tworzyć zagnieżdżone pętle w Pythonie. Zagnieżdżone pętle oznaczają pętle wewnątrz pętli. Na przykład pętla while wewnątrz pętli for, pętla for w pętli for itp.

if else instrukcje Java
Pętle zagnieżdżone w Pythonie

Pętle zagnieżdżone w Pythonie

Składnia pętli zagnieżdżonych w Pythonie:

Wyrażenie zewnętrznej pętli:



Wyrażenie wewnętrznej pętli:

Instrukcja wewnątrz inside_loop

Instrukcja wewnątrz Outer_loop

Przykłady zagnieżdżonych pętli w Pythonie

Przykład 1: Podstawowy przykład pętli zagnieżdżonych w Pythonie

Python3




x>=> [>1>,>2>]> y>=> [>4>,>5>]> for> i>in> x:> >for> j>in> y:> >print>(i, j)>

>

>

Wyjście:

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>

>

>

Złożoność czasowa: NA2)

Przestrzeń pomocnicza: O(1)

Przykład 2: Drukowanie tabliczki mnożenia przy użyciu Pythona zagnieżdżonego w pętlach for

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>()>

>

>

Wyjście:

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>

Złożoność czasowa: NA2)

Przestrzeń pomocnicza: O(1)

W powyższym przykładzie bierzemy zewnętrzną pętlę for uruchamiającą się od 2 do 3 dla tabliczki mnożenia 2 i 3, a następnie wewnątrz tej pętli bierzemy wewnętrzną pętlę for, która będzie uruchamiana od 1 do 10, wewnątrz której drukujemy mnożenie tabeli, mnożąc każdą wartość iteracji pętli wewnętrznej przez iteracja wartość zewnętrznej pętli, jak widać na poniższym wyjściu.

Przykład 3: Drukowanie przy użyciu różnych pętli wewnętrznych i zewnętrznych

Python3




słoneczny deol
# 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 ')>

>

>

pętla while w Javie

Wyjście:

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>

Złożoność czasowa: NA2)

Przestrzeń pomocnicza: O(1)

W tym przykładzie inicjujemy dwie listy pewnymi ciągami znaków. Zapisz rozmiar listy2 w „list2_Size”, używając funkcji len() i używając jej w pętli while jako licznika. Następnie uruchom zewnętrzną pętlę for do iteruj po liście 1 i wewnątrz tej pętli uruchom wewnętrzną pętlę while, aby iterować po liście2, używając indeksowania list, wewnątrz którego drukujemy każdą wartość z listy2 dla każdej wartości z listy1.

Używanie instrukcji break w zagnieżdżonych pętlach

Jest to rodzaj instrukcji sterującej pętli. W pętli możemy użyć metody oświadczenie o złamaniu aby wyjść z pętli. Kiedy używamy instrukcji break w pętli, pomija ona resztę iteracji i kończy pętlę. zrozummy to na przykładzie.

Kod:

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>()>

>

>

Wyjście:

2 * 1 = 2 3 * 1 = 3 3 * 2 = 6>

Złożoność czasowa: NA2)

Przestrzeń pomocnicza: O(1)

Powyższy kod jest taki sam jak w przykładzie 2. W tym kodzie używamy instrukcji break wewnątrz pętli wewnętrznej, używając metody jeśli stwierdzenie . Wewnątrz pętli wewnętrznej, jeśli „i” stanie się równe „j”, wówczas pętla wewnętrzna zostanie zakończona i nie zostanie wykonana. Pozostała część iteracji, jak widzimy w tabeli wyjściowej 3, jest drukowana do dwóch iteracji, ponieważ w następnej iteracji „i” staje się równe „j” i pętla zostaje przerwana.

Używanie instrukcjicontinue w zagnieżdżonych pętlach

Instrukcja kontynuowania jest także rodzajem instrukcji sterującej pętli. Jest to przeciwieństwo instrukcji break. Instrukcjacontinue zmusza pętlę do przejścia do następnej iteracji pętli, natomiast instrukcja break kończy pętlę. Rozumiemy to za pomocą kodu.

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>()>

>

>

Wyjście:

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>

Złożoność czasowa: NA2)

Przestrzeń pomocnicza: O(1)

W powyższym kodzie zamiast instrukcji break używamy instrukcjicontinue. Tutaj, gdy „i” staje się równe „j” w pętli wewnętrznej, pomija resztę kodu w pętli wewnętrznej i przechodzi do następnej iteracji, jak widzimy na wyjściu 2 * 2 = 4 i 3 * 3 = 9 to nie jest drukowany, ponieważ w tym momencie „i” staje się równe „j”.

Pojedyncza linia Pętle zagnieżdżone wykorzystujące zrozumienie list

Aby przekonwertować zagnieżdżone pętle wieloliniowe na pojedynczą linię, użyjemy rozumienie list w Pythonie . Rozumienie listy obejmuje nawiasy składające się z wyrażenia, które jest wykonywane dla każdego elementu, oraz pętli for umożliwiającej iterację po każdym elemencie listy.

Składnia rozumienia list:

Nowa lista = [ wyrażenie (element) Do element W stara lista Jeśli stan ]

Kod:

połączyć ciąg Java

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)>

>

>

Wyjście:

[[0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2]]>

W powyższym kodzie przechowujemy listę wewnątrz listy, używając funkcji rozumienia list w wewnętrznej pętli rozumienia list [j for j in range(3)], aby utworzyć listę [0, 1, 2] dla każdej iteracji zewnętrznej pętla dla i w zakresie (5).

Złożoność czasowa: NA2) Jest szybszy niż pętle zagnieżdżone

Przestrzeń pomocnicza: NA)