Python støtter ulike sløyfeteknikker med visse innebygde funksjoner i ulike sekvensielle beholdere. Disse metodene er først og fremst svært nyttige i konkurrerende programmering og også i ulike prosjekter som krever en spesifikk teknikk med løkker som opprettholder den generelle strukturen til kode. Mye tid og minneplass er spart ettersom det ikke er behov for å deklarere de ekstra variablene som vi erklærer i den tradisjonelle tilnærmingen til løkker.
Hvor brukes de?
Ulike sløyfeteknikker er først og fremst nyttige på steder der vi ikke trenger å faktisk manipulere strukturen og rekkefølgen til de overordnede beholderne, heller bare skrive ut elementene for en engangsforekomst, ingen endringer på stedet skjer i beholderen. Dette kan også brukes i tilfeller for å spare tid.
Ulike løkketeknikker som bruker Python-datastrukturer er:
Måte 1: Bruk enumerate(): enumerate() brukes til å gå gjennom beholderne som skriver ut indeksnummeret sammen med verdien som finnes i den aktuelle indeksen.
Python3
# python code to demonstrate working of enumerate() for key value in enumerate(['The' 'Big' 'Bang' 'Theory']): print(key value)
Produksjon:
hva er desktop.ini
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=' ')
Produksjon:
Geeks for Geeks is the Best Coding Platform Måte 2: Bruke zip(): zip() brukes til å kombinere 2 eller flere beholdere som skriver ut verdiene sekvensielt. Løkken eksisterer bare til den mindre beholderen slutter. En detaljert forklaring av zip() og enumerate() kan bli funnet her .
Eksempel 1: To forskjellige datatyper (liste)
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()
Produksjon
('Name: ' 'Deep') ('Age: ' 24) () ('Name: ' 'Sachin') ('Age: ' 27) () ('Name: ' 'Simran') ('Age: ' 25) () Eksempel 2: To lignende datatyper liste-liste
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))
Produksjon:
What is your name? I am apple.
What is your color? I am red.
What is your shape? I am a circle.
Måte 3: Bruke iteritem(): iteritems() brukes til å gå gjennom ordboken og skrive ut ordboknøkkelverdi-paret sekvensielt som brukes før Python 3-versjonen.
Måte 4: Bruke elementer(): items() utfører den lignende oppgaven på ordboken som iteritems(), men har visse ulemper sammenlignet med iteritems().
- Det er det svært tidkrevende . Å kalle det på store ordbøker bruker ganske mye tid.
- Det tar en mye minne . Noen ganger tar det dobbelt så mye minne når det kalles på en ordbok.
Eksempel 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)
Produksjon:
The key value pair using iteritems is :
geeks for
only geeks
Eksempel 2:
referanse datatyper i javaPython3
# 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)
Produksjon
Ashoka The Great Chandragupta The Maurya Modi The Changer
Måte 5: Bruk sortert(): sorted() brukes til å skrive ut container er sortert rekkefølge . Den sorterer ikke beholderen men skriver bare ut beholderen i sortert rekkefølge for 1 forekomst. Bruken av set() kan kombineres for å fjerne duplikat hendelser.
Eksempel 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=' ')
Produksjon:
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
Eksempel 2:
bytte javaPython3
# 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)
Produksjon:
apple
banana
grape
guava
guave
orange
pear
Måte 6: Bruk omvendt(): reversed() brukes til å skrive ut verdiene til de beholder i omvendt rekkefølge . Den gjenspeiler ingen endringer i den opprinnelige listen
Eksempel 1:
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=' ')
Produksjon:
The list in reversed order is :
3 1 2 6 5 3 1
Eksempel 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)
Produksjon:
7
4
1
- Disse teknikkene er raske å bruke og reduserer kodeinnsatsen. for while-løkker må hele strukturen til beholderen endres.
- Disse løkketeknikkene krever ingen strukturelle endringer i beholderen. De har søkeord som viser det nøyaktige formålet med bruken. Mens ingen forhåndsspådommer eller gjetninger kan gjøres i en mens-løkke, det vil si at det ikke er lett å forstå formålet med et blikk.
- Looping-teknikk gjør koden mer kortfattet enn å bruke for og mens looping.
looping-teknikker mens du looper med if-setninger:
I dette eksemplet bruker vi en while-løkke for å øke en variabel kalt count. Inne i løkken bruker vi en if-setning for å sjekke om antallet er lik 3. Hvis det er det, skriver vi ut en melding.
Nærme:
Initialiser en tellevariabel til 0
Bruk en while-løkke for å gjentatte ganger utføre en kodeblokk så lenge antallet er mindre enn 5
Inne i loopen bruker du en if-setning for å sjekke om antallet er lik 3
Hvis antallet er 3, skriv ut en melding
Øk antallet med 1 på slutten av hver iterasjon
# Example variable count = 0 # Loop while count is less than 5 while count < 5: if count == 3: print('Count is 3') count += 1
Produksjon
Count is 3
Tidskompleksitet: O(n) der n er antall iterasjoner som kreves for at tellingen skal nå 5.
q1 q2 q3 q4
Auxiliary Space: O(1) siden bare én variabel (count) brukes gjennom hele koden.
Lag quiz