logo

Smyčkové techniky v Pythonu

Python podporuje různé techniky smyčkování pomocí určitých vestavěných funkcí v různých sekvenčních kontejnerech. Tyto metody jsou především velmi užitečné v konkurenčním programování a také v různých projektech, které vyžadují specifickou techniku ​​se smyčkami udržující celkovou strukturu kódu.  Ušetří se mnoho času a paměti, protože není potřeba deklarovat další proměnné, které deklarujeme v tradičním přístupu cyklů.

Kde se používají?

Různé techniky smyčkování jsou primárně užitečné v místech, kde nepotřebujeme skutečně manipulovat se strukturou a pořadím celkových kontejnerů, ale pouze tisknout prvky pro jednorázovou instanci, v kontejneru nedochází ke změně na místě. To lze také použít v případech pro úsporu času.

Různé techniky cyklování využívající datové struktury Pythonu jsou:  

Způsob 1: Použití enumerate():   enumerate() se používá k procházení kontejnerů tisknutím čísla indexu spolu s hodnotou přítomnou v tomto konkrétním indexu.



Python3
# python code to demonstrate working of enumerate() for key value in enumerate(['The' 'Big' 'Bang' 'Theory']): print(key value) 

výstup:

slf4j vs log4j
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=' ') 

výstup:

Geeks for Geeks is the Best Coding Platform 

Způsob 2: Použití zip():  zip() se používá ke kombinaci 2 nebo více kontejnerů, které vytisknou hodnoty postupně. Smyčka existuje pouze do konce menšího kontejneru. Podrobné vysvětlení zip() a enumerate() lze nalézt zde .

Příklad 1: Dva různé datové typy (seznam)

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) () 

Příklad 2: Dva podobné datové typy seznam-seznam

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.

Způsob 3: Použití iteritem():  iteritems() se používá k procházení slovníkem a tiskne postupně pár klíč-hodnota slovníku, který se používá před verzí Pythonu 3.

java regulární výraz pro

Způsob 4: Použití položek(): items() provádí ve slovníku podobnou úlohu jako iteritems(), ale má určité nevýhody ve srovnání s iteritems().

  • To je velmi časově náročné . Volání ve velkých slovnících zabere poměrně hodně času.
  • To trvá a hodně paměti . Někdy zabere dvojnásobek paměti při volání do slovníku.

Pří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

Pří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 

Způsob 5: Použití sort():   sort() se používá k tisku kontejner je tříděný podle pořadí . To netřídí kontejner ale pouze vytiskne kontejner v seřazeném pořadí pro 1 instanci. Použití set() lze zkombinovat a odstranit duplicitní výskytů.

Pří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

Pří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

Způsob 6: Použití reversed():  reversed() se používá k tisku hodnot a kontejner v obráceném pořadí . Neodráží žádné změny původního seznamu

Příklad 1:

java end for loop
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=' ') 

výstup:

převést datum na řetězec
The list in reversed order is :   
3 1 2 6 5 3 1

Pří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
  • Tyto techniky se rychle používají a snižují úsilí při kódování. pro while smyčky je potřeba změnit celou strukturu kontejneru.
  • Tyto techniky smyčkování nevyžadují žádné strukturální změny nádoby. Mají klíčová slova, která představují přesný účel použití. Zatímco ve smyčce while nelze provádět žádné předpovědi nebo odhady, tj. na první pohled nelze snadno pochopit účel.
  • Technika cyklování dělá kód stručnějším než použití for & while cyklování.

techniky smyčkování  při smyčkování pomocí příkazů if:

V tomto příkladu používáme cyklus while ke zvýšení proměnné s názvem count. Uvnitř smyčky používáme příkaz if ke kontrole, zda je počet roven 3. Pokud ano, vytiskneme zprávu.

Přístup:

Inicializujte proměnnou počtu na 0
Použijte smyčku while k opakovanému provádění bloku kódu, pokud je počet menší než 5
Uvnitř smyčky použijte příkaz if ke kontrole, zda se počet rovná 3
Pokud je počet 3, vytiskněte zprávu
Na konci každé iterace zvyšte počet o 1

Python3
# 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á složitost: O(n) kde n je počet iterací potřebných k tomu, aby počet dosáhl 5.

Pomocný prostor: O(1), protože v celém kódu se používá pouze jedna proměnná (počet).

Vytvořit kvíz