A Python különféle hurkolási technikákat támogat bizonyos beépített függvények segítségével, különböző szekvenciális tárolókban. Ezek a módszerek elsősorban a kompetitív programozásban nagyon hasznosak, és olyan különféle projektekben is, amelyek speciális technikát igényelnek a kód általános szerkezetét fenntartó ciklusokkal. Rengeteg időt és memóriaterületet takarítunk meg, mivel nincs szükség az extra változók deklarálására, amelyeket a ciklusok hagyományos megközelítésében deklarálunk.
Hol használják őket?
A különböző hurkolási technikák elsősorban olyan helyeken hasznosak, ahol nem kell ténylegesen manipulálnunk a teljes tárolók szerkezetével és sorrendjével, hanem csak egy egyszer használatos példány elemeit nyomtatjuk ki, a tárolóban nem történik helybeli változás. Ez bizonyos esetekben időmegtakarítás céljából is használható.
A Python adatstruktúrákat használó különböző hurkolási technikák a következők:
1. módszer: Az enumerate(): Az enumerate() az indexszámot az adott indexben jelenlévő értékkel együtt kinyomtató konténerek közötti ciklusra szolgál.
Python3
# python code to demonstrate working of enumerate() for key value in enumerate(['The' 'Big' 'Bang' 'Theory']): print(key value)
Kimenet:
java bool karakterlánchoz
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=' ')
Kimenet:
Geeks for Geeks is the Best Coding Platform 2. módszer: A zip(): A zip() 2 vagy több tároló kombinálására szolgál, amelyek egymás után nyomtatják ki az értékeket. A hurok csak a kisebb konténer végéig létezik. A zip() és az enumerate() részletes magyarázata megtalálható itt .
1. példa: Két különböző adattípus (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()
Kimenet
('Name: ' 'Deep') ('Age: ' 24) () ('Name: ' 'Sachin') ('Age: ' 27) () ('Name: ' 'Simran') ('Age: ' 25) () 2. példa: Két hasonló adattípus lista-lista
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))
Kimenet:
What is your name? I am apple.
What is your color? I am red.
What is your shape? I am a circle.
3. módszer: Az iteritem(): Az iteritems() a szótárban való körözésre szolgál, és szekvenciálisan kinyomtatja a szótár kulcs-érték párját, amely a Python 3 verzió előtt használatos.
4. módszer: Az elemek használata (): Az items() hasonló feladatot hajt végre a szótárban, mint az iteritems(), de vannak bizonyos hátrányai az iteritems()-hez képest.
- Ez az nagyon időigényes . A nagy szótárakban való felhívás meglehetősen sok időt vesz igénybe.
- Kell a sok memória . Néha dupla memóriát vesz igénybe, ha szótárban hívják.
1. példa:
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)
Kimenet:
windows parancs arp
The key value pair using iteritems is :
geeks for
only geeks
2. példa:
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)
Kimenet
Ashoka The Great Chandragupta The Maurya Modi The Changer
5. módszer: A sorted(): A sorted() segítségével nyomtatható ki a konténer rendezett sorrendben . Azt nem válogatja a konténert de csak 1 példányhoz rendezett sorrendben nyomtatja ki a tárolót. A használata set() kombinálható a duplikáció eltávolításához előfordulások.
1. példa:
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=' ')
Kimenet:
gimp téglalap rajzolás
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
2. példa:
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)
Kimenet:
apple
banana
grape
guava
guave
orange
pear
6. módszer: A fordított(): A reverse() a következő értékeinek kinyomtatására szolgál a konténer fordított sorrendben . Nem tükrözi az eredeti lista változásait
1. példa:
Python3# 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=' ')
Kimenet:
The list in reversed order is :
3 1 2 6 5 3 1
2. példa:
előrendelési bejárásPython3
# python code to demonstrate working of reversed() # using reversed() to print in reverse order for i in reversed(range(1 10 3)): print(i)
Kimenet:
7
4
1
- Ezek a technikák gyorsan használhatók, és csökkentik a kódolási erőfeszítést. mert míg a hurkok a tároló teljes szerkezetét meg kell változtatni.
- Ezek a hurkolási technikák nem igényelnek semmilyen szerkezeti változtatást a tartályon. Olyan kulcsszavakkal rendelkeznek, amelyek bemutatják a használat pontos célját. Míg a while ciklusra nem lehet előre jósolni vagy találgatni, vagyis nem könnyen érthető a cél egy pillantással.
- A hurkolási technika tömörebbé teszi a kódot, mint a for & while ciklus használata.
hurkolási technikák, miközben ciklusban használjuk if utasításokat:
Ebben a példában a while ciklust használjuk a count nevű változó növelésére. A cikluson belül egy if utasítást használunk annak ellenőrzésére, hogy a szám egyenlő-e 3-mal. Ha igen, akkor egy üzenetet nyomtatunk.
Megközelítés:
Inicializáljon egy számláló változót 0-ra
Használjon while ciklust egy kódblokk ismételt végrehajtásához, amíg a szám 5-nél kisebb
A cikluson belül használjon if utasítást annak ellenőrzésére, hogy a szám egyenlő-e 3-mal
Ha a szám 3, nyomtasson üzenetet
Növelje a számot 1-gyel minden iteráció végén
# Example variable count = 0 # Loop while count is less than 5 while count < 5: if count == 3: print('Count is 3') count += 1
Kimenet
Count is 3
Időbonyolultság: O(n), ahol n az iterációk száma, amelyek szükségesek ahhoz, hogy a szám elérje az 5-öt.
Segédszóköz: O(1), mivel csak egy változót (count) használunk a kódban.
Kvíz létrehozása