logo

Looping technikák Pythonban

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 The  
1 Big
2 Bang
3 Theory
Python3
# 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ás
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) 

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

Python3
# 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