logo

Техники за цикъл в Python

Python поддържа различни техники за цикъл чрез определени вградени функции в различни последователни контейнери. Тези методи са предимно много полезни в състезателното програмиране, а също и в различни проекти, които изискват специфична техника с цикли, поддържащи цялостната структура на кода.  Спестява се много време и място в паметта, тъй като няма нужда да се декларират допълнителните променливи, които декларираме в традиционния подход на цикли.

Къде се използват?

Различните техники за цикъл са полезни предимно на места, където не е необходимо действително да манипулираме структурата и реда на цялостните контейнери, а само да отпечатаме елементите за екземпляр за еднократна употреба, без промяна на място в контейнера. Това може да се използва и в случаите, за да спестите време.

Различни техники за цикъл, използващи структури от данни на Python, са:  

Начин 1: Използване на enumerate():   enumerate() се използва за преминаване през контейнерите, отпечатвайки номера на индекса заедно със стойността, присъстваща в този конкретен индекс.



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

Изход:

как да прехвърляте низ към int в java
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=' ') 

Изход:

Geeks for Geeks is the Best Coding Platform 

Начин 2: Използване на zip():  zip() се използва за комбиниране на 2 или повече контейнера, отпечатващи стойностите последователно. Цикълът съществува само докато свърши по-малкият контейнер. Можете да намерите подробно обяснение на zip() и enumerate(). тук .

Пример 1: Два различни типа данни (списък)

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

Изход
('Name: ' 'Deep') ('Age: ' 24) () ('Name: ' 'Sachin') ('Age: ' 27) () ('Name: ' 'Simran') ('Age: ' 25) () 

Пример 2: Два сходни типа данни list-list

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

Изход:

What is your name? I am apple.  
What is your color? I am red.
What is your shape? I am a circle.

Начин 3: Използване на iteritem():  iteritems() се използва за преминаване през речника, отпечатвайки последователно двойката ключ-стойност на речника, която се използва преди версията на Python 3.

инстанциране на java

Начин 4: Използване на items(): items() изпълнява подобна задача върху речника като iteritems(), но има определени недостатъци в сравнение с iteritems().

  • Така е отнема много време . Извикването му в големи речници отнема доста време.
  • Това отнема а много памет . Понякога отнема двойно повече памет при извикване на речник.

Пример 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) 

Изход:

The key value pair using iteritems is :   
geeks for
only geeks

Пример 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) 

Изход
Ashoka The Great Chandragupta The Maurya Modi The Changer 

Начин 5: Използване на sorted():   sorted() се използва за отпечатване на контейнерът е сортиран по ред . то не сортира контейнера но просто отпечатва контейнера в сортиран ред за 1 екземпляр. Използването на set() може да се комбинира за премахване на дубликат събития.

Пример 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=' ') 

Изход:

    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:

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) 

Изход:

apple  
banana
grape
guava
guave
orange
pear

Начин 6: Използване на reversed():  reversed() се използва за отпечатване на стойностите на на контейнер в обратен ред . Той не отразява никакви промени в оригиналния списък

Пример 1:

java низ към char
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=' ') 

Изход:

hashset срещу hashmap
The list in reversed order is :   
3 1 2 6 5 3 1

Пример 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) 

Изход:

7  
4
1
  • Тези техники са бързи за използване и намаляват усилието за кодиране. for while циклите се нуждаят от промяна на цялата структура на контейнера.
  • Тези техники на Looping не изискват никакви структурни промени в контейнера. Те имат ключови думи, които представят точната цел на използване. Като има предвид, че не могат да се правят предварителни прогнози или предположения в цикъла for while, т.е. не е лесно да се разбере целта с един поглед.
  • Техниката на цикъла прави кода по-сбит от използването на цикъл for & while.

техники за цикъл  while цикъл с помощта на оператори if:

В този пример използваме цикъл while за увеличаване на променлива, наречена count. Вътре в цикъла използваме израз if, за да проверим дали count е равен на 3. Ако е равен, отпечатваме съобщение.

Подход:

Инициализирайте променлива за броене на 0
Използвайте цикъл while за многократно изпълнение на блок от код, стига броят да е по-малък от 5
Вътре в цикъла използвайте оператор if, за да проверите дали броят е равен на 3
Ако броят е 3, отпечатайте съобщение
Увеличете броя с 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 

Изход
Count is 3


Времева сложност: O(n), където n е броят итерации, необходими за достигане на броя до 5.

Помощно пространство: O(1), тъй като в целия код се използва само една променлива (брой).

Създаване на тест