Python podporuje rôzne techniky cyklovania pomocou určitých vstavaných funkcií v rôznych sekvenčných kontajneroch. Tieto metódy sú predovšetkým veľmi užitočné v konkurenčnom programovaní a tiež v rôznych projektoch, ktoré vyžadujú špecifickú techniku so slučkami udržiavajúcimi celkovú štruktúru kódu. Ušetrí sa veľa času a miesta v pamäti, pretože nie je potrebné deklarovať ďalšie premenné, ktoré deklarujeme pri tradičnom prístupe k slučkám.
Kde sa používajú?
Rôzne techniky cyklovania sú primárne užitočné na miestach, kde nepotrebujeme skutočne manipulovať so štruktúrou a poradím celkových kontajnerov, ale iba vytlačíme prvky pre inštanciu na jedno použitie, v kontajneri nenastane žiadna zmena na mieste. To sa dá použiť aj v prípadoch, aby sa ušetril čas.
Rôzne techniky cyklovania pomocou dátových štruktúr Pythonu sú:
Spôsob 1: Použitie enumerate(): enumerate() sa používa na zacyklenie cez kontajnery, ktoré vytlačia číslo indexu spolu s hodnotou prítomnou v tomto konkrétnom indexe.
Python3
# python code to demonstrate working of enumerate() for key value in enumerate(['The' 'Big' 'Bang' 'Theory']): print(key value)
výstup:
css pre tučné písmo
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=' ')
výstup:
Geeks for Geeks is the Best Coding Platform Spôsob 2: Použitie zip(): zip() sa používa na kombináciu 2 alebo viacerých kontajnerov, ktoré tlačia hodnoty postupne. Slučka existuje len do konca menšieho kontajnera. Môžete nájsť podrobné vysvetlenie zip() a enumerate(). tu .
Príklad 1: Dva rôzne typy údajov (zoznam)
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()
Výstup
('Name: ' 'Deep') ('Age: ' 24) () ('Name: ' 'Sachin') ('Age: ' 27) () ('Name: ' 'Simran') ('Age: ' 25) () Príklad 2: Dva podobné zoznamy dátových typov
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))
výstup:
What is your name? I am apple.
What is your color? I am red.
What is your shape? I am a circle.
Spôsob 3: Použitie iteritem(): iteritems() sa používa na zacyklenie cez slovník, pričom postupne vytlačí pár kľúč-hodnota slovníka, ktorý sa používa pred verziou Pythonu 3.
latexový stôl
Spôsob 4: Použitie položiek (): items() vykonáva podobnú úlohu v slovníku ako iteritems(), ale má určité nevýhody v porovnaní s iteritems().
- je to tak veľmi časovo náročné . Jeho volanie vo veľkých slovníkoch zaberie pomerne veľa času.
- Trvá to a veľa pamäte . Pri volaní do slovníka niekedy zaberie dvojnásobnú pamäť.
Príklad 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)
výstup:
The key value pair using iteritems is :
geeks for
only geeks
Príklad 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)
Výstup
Ashoka The Great Chandragupta The Maurya Modi The Changer
Spôsob 5: Použitie zoradené (): sort() sa používa na tlač kontajner je triedený v poradí . to netriedi kontajner ale iba vytlačí kontajner v zoradenom poradí pre 1 inštanciu. Použitie set() je možné kombinovať na odstránenie duplikátu výskytov.
Príklad 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=' ')
výstup:
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
Príklad 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)
výstup:
apple
banana
grape
guava
guave
orange
pear
Spôsob 6: Použitie reverse(): reversed() sa používa na tlač hodnôt a kontajner v opačnom poradí . Neodráža žiadne zmeny pôvodného zoznamu
Príklad 1:
interné fungovanie hashmapPython3
# 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=' ')
výstup:
logika prenosu registrov
The list in reversed order is :
3 1 2 6 5 3 1
Príklad 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)
výstup:
7
4
1
- Tieto techniky sa rýchlo používajú a znižujú námahu pri kódovaní. pretože slučky while potrebujú zmeniť celú štruktúru kontajnera.
- Tieto techniky Loopingu nevyžadujú žiadne štrukturálne zmeny nádoby. Majú kľúčové slová, ktoré predstavujú presný účel použitia. Zatiaľ čo v slučke while nie je možné robiť žiadne predbežné predpovede alebo odhady, tj nie je ľahké pochopiť účel na prvý pohľad.
- Technika cyklovania robí kód výstižnejším než pomocou cyklovania for & while.
techniky cyklovania počas cyklu s použitím príkazov if:
V tomto príklade používame cyklus while na zvýšenie premennej s názvom count. Vo vnútri cyklu používame príkaz if na kontrolu, či sa počet rovná 3. Ak áno, vytlačíme správu.
Prístup:
Inicializujte premennú počtu na 0
Použite cyklus while na opakované vykonávanie bloku kódu, pokiaľ je počet menší ako 5
Vo vnútri cyklu použite príkaz if na kontrolu, či sa počet rovná 3
Ak je počet 3, vytlačte správu
Na konci každej iterácie zvýšte počet o 1
# Example variable count = 0 # Loop while count is less than 5 while count < 5: if count == 3: print('Count is 3') count += 1
Výstup
Count is 3
Časová zložitosť: O(n), kde n je počet iterácií potrebných na to, aby počet dosiahol 5.
Pomocný priestor: O(1), pretože v kóde sa používa iba jedna premenná (počet).
Vytvoriť kvíz