Python podržava različite tehnike petlji pomoću određenih ugrađenih funkcija u različitim sekvencijalnim spremnicima. Ove metode su prvenstveno vrlo korisne u kompetitivnom programiranju, ali iu raznim projektima koji zahtijevaju specifičnu tehniku s petljama koje održavaju cjelokupnu strukturu koda. Štedi se puno vremena i memorijskog prostora jer nema potrebe za deklariranjem dodatnih varijabli koje deklariramo u tradicionalnom pristupu petlji.
Gdje se koriste?
Različite tehnike petlji primarno su korisne na mjestima gdje ne trebamo zapravo manipulirati strukturom i redoslijedom ukupnih spremnika, nego samo ispisati elemente za instancu za jednokratnu upotrebu, bez promjene na mjestu u spremniku. Ovo se također može koristiti u slučajevima za uštedu vremena.
Različite tehnike petlji koje koriste Python strukture podataka su:
1. način: korištenje enumerate(): enumerate() se koristi za kruženje kroz spremnike koji ispisuju broj indeksa zajedno s vrijednošću prisutnom u tom određenom indeksu.
Python3
# python code to demonstrate working of enumerate() for key value in enumerate(['The' 'Big' 'Bang' 'Theory']): print(key value)
Izlaz:
tat puni oblik
0 ThePython3
1 Big
2 Bang
3 Theory
# python code to demonstrate working of enumerate() for key value in enumerate(['Geeks' 'for' 'Geeks' 'is' 'the' 'Best' 'Coding' 'Platform']): print(value end=' ')
Izlaz:
Geeks for Geeks is the Best Coding Platform 2. način: korištenje zip(): zip() se koristi za kombiniranje 2 ili više spremnika koji uzastopno ispisuju vrijednosti. Petlja postoji samo dok manji spremnik ne završi. Detaljno objašnjenje zip() i enumerate() može se pronaći ovdje .
Primjer 1: Dvije različite vrste podataka (listtuple)
Python# python code to demonstrate working of zip() names = ['Deep' 'Sachin' 'Simran'] # list ages = (24 27 25) # tuple for name age in zip(names ages): print('Name: ' name) print('Age: ' age) print()
Izlaz
('Name: ' 'Deep') ('Age: ' 24) () ('Name: ' 'Sachin') ('Age: ' 27) () ('Name: ' 'Simran') ('Age: ' 25) () Primjer 2: Dva slična tipa podataka list-list
Python3# python code to demonstrate working of zip() # initializing list questions = ['name' 'colour' 'shape'] answers = ['apple' 'red' 'a circle'] # using zip() to combine two containers # and print values for question answer in zip(questions answers): print('What is your {0}? I am {1}.'.format(question answer))
Izlaz:
What is your name? I am apple.
What is your color? I am red.
What is your shape? I am a circle.
Način 3: Korištenje iteritem(): iteritems() se koristi za kruženje rječnikom sekvencijalno ispisivanje para ključ-vrijednost rječnika koji se koristio prije Python 3 verzije.
veličina mog monitora
4. način: Korištenje stavki(): items() obavlja sličan zadatak na rječniku kao iteritems(), ali ima određene nedostatke u usporedbi s iteritems().
- jeste oduzima puno vremena . Pozivanje u velikim rječnicima oduzima dosta vremena.
- Potrebno je a puno memorije . Ponekad zauzima dvostruko više memorije kada se poziva na rječniku.
Primjer 1:
Python3# python code to demonstrate working of items() d = {'geeks': 'for' 'only': 'geeks'} # iteritems() is renamed to items() in python3 # using items to print the dictionary key-value pair print('The key value pair using items is : ') for i j in d.items(): print(i j)
Izlaz:
The key value pair using iteritems is :
geeks for
only geeks
Primjer 2:
Python3# python code to demonstrate working of items() king = {'Ashoka': 'The Great' 'Chandragupta': 'The Maurya' 'Modi': 'The Changer'} # using items to print the dictionary key-value pair for key value in king.items(): print(key value)
Izlaz
Ashoka The Great Chandragupta The Maurya Modi The Changer
5. način: korištenje sorted(): sorted() se koristi za ispis spremnik je poredan . To ne sortira kontejner ali samo ispisuje spremnik sortiranim redoslijedom za 1 instancu. Upotreba set() se može kombinirati za uklanjanje duplikata pojave.
Primjer 1:
Python3# python code to demonstrate working of sorted() # initializing list lis = [1 3 5 6 2 1 3] # using sorted() to print the list in sorted order print('The list in sorted order is : ') for i in sorted(lis): print(i end=' ') print('r') # using sorted() and set() to print the list in sorted order # use of set() removes duplicates. print('The list in sorted order (without duplicates) is : ') for i in sorted(set(lis)): print(i end=' ')
Izlaz:
The li st in sorted order is :
1 1 2 3 3 5 6
The list in sorted order (without duplicates) is :
1 2 3 5 6
Primjer 2:
Python3# python code to demonstrate working of sorted() # initializing list basket = ['guave' 'orange' 'apple' 'pear' 'guava' 'banana' 'grape'] # using sorted() and set() to print the list # in sorted order for fruit in sorted(set(basket)): print(fruit)
Izlaz:
apple
banana
grape
guava
guave
orange
pear
Način 6: Korištenje reversed(): reversed() se koristi za ispis vrijednosti the spremnik obrnutim redoslijedom . Ne odražava nikakve promjene izvornog popisa
Primjer 1:
značajke java8Python3
# python code to demonstrate working of reversed() # initializing list lis = [1 3 5 6 2 1 3] # using reversed() to print the list in reversed order print('The list in reversed order is : ') for i in reversed(lis): print(i end=' ')
Izlaz:
niz u Javi
The list in reversed order is :
3 1 2 6 5 3 1
Primjer 2:
Python3# python code to demonstrate working of reversed() # using reversed() to print in reverse order for i in reversed(range(1 10 3)): print(i)
Izlaz:
7
4
1
- Ove se tehnike brzo koriste i smanjuju napor kodiranja. jer dok petlje trebaju promijeniti cijelu strukturu spremnika.
- Ove tehnike petlje ne zahtijevaju nikakve strukturne promjene na spremniku. Oni imaju ključne riječi koje predstavljaju točnu svrhu upotrebe. Dok se u petlji for while ne mogu napraviti nikakva predviđanja ili nagađanja, tj. nije lako razumjeti svrhu na prvi pogled.
- Tehnika petlje čini kôd konciznijim od korištenja petlje for & while.
tehnike petlje while petlja pomoću if naredbi:
U ovom primjeru koristimo while petlju za povećanje varijable koja se zove count. Unutar petlje koristimo if naredbu da provjerimo je li count jednak 3. Ako jest, ispisujemo poruku.
Pristup:
Inicijalizirajte varijablu brojača na 0
Upotrijebite while petlju za opetovano izvršavanje bloka koda sve dok je count manji od 5
Unutar petlje koristite if naredbu da provjerite je li count jednak 3
Ako je broj 3, ispišite poruku
Povećajte broj za 1 na kraju svake iteracije
# Example variable count = 0 # Loop while count is less than 5 while count < 5: if count == 3: print('Count is 3') count += 1
Izlaz
Count is 3
Vremenska složenost: O(n) gdje je n broj ponavljanja potrebnih da bi brojanje doseglo 5.
Pomoćni prostor: O(1) budući da se u cijelom kodu koristi samo jedna varijabla (count).
Napravi kviz