logo

Python'da Döngü Teknikleri

Python, çeşitli sıralı kaplardaki belirli yerleşik işlevler aracılığıyla çeşitli döngü tekniklerini destekler. Bu yöntemler öncelikle rekabetçi programlamada ve ayrıca kodun genel yapısını koruyan döngülerle özel bir teknik gerektiren çeşitli projelerde çok faydalıdır.  Geleneksel döngü yaklaşımında bildirdiğimiz ekstra değişkenleri bildirmeye gerek olmadığından çok fazla zaman ve bellek alanı tasarrufu sağlanır.

Nerede kullanılırlar?

Farklı döngü teknikleri öncelikle, genel kapların yapısını ve sırasını değiştirmeye ihtiyaç duymadığımız, bunun yerine elemanları yalnızca tek kullanımlık bir örnek için bastığımız, kapta yerinde bir değişiklik meydana gelmediği yerlerde faydalıdır. Bu aynı zamanda zaman kazanmak için durumlarda da kullanılabilir.

Python veri yapılarını kullanan farklı döngü teknikleri şunlardır:  

Yol 1: Enumerate() işlevini kullanma:   enumerate(), söz konusu indekste mevcut olan değerle birlikte indeks numarasını yazdıran kaplar arasında döngü yapmak için kullanılır.



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

Çıkış:

java sunucu sayfaları
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=' ') 

Çıkış:

Geeks for Geeks is the Best Coding Platform 

Yol 2: Zip() kullanarak:  zip(), değerleri sırayla yazdıran 2 veya daha fazla kabı birleştirmek için kullanılır. Döngü yalnızca daha küçük kap bitene kadar mevcuttur. Zip() ve enumerate() ile ilgili ayrıntılı bir açıklama bulunabilir Burada .

Örnek 1: İki farklı veri türü(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() 

Çıkış
('Name: ' 'Deep') ('Age: ' 24) () ('Name: ' 'Sachin') ('Age: ' 27) () ('Name: ' 'Simran') ('Age: ' 25) () 

Örnek 2: İki benzer veri tipi liste listesi

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

Çıkış:

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

Yol 3: iteritem() kullanımı:  iteritems(), Python 3 sürümünden önce kullanılan sözlük anahtar/değer çiftini sırayla yazdırarak sözlükte döngü yapmak için kullanılır.

Yol 4: Öğeleri kullanma(): items() sözlükte iteritems() ile benzer görevi gerçekleştirir ancak iteritems() ile karşılaştırıldığında bazı dezavantajlara sahiptir.

  • öyle çok zaman alıcı . Bunu büyük sözlüklerde çağırmak oldukça fazla zaman tüketir.
  • Bir alır çok fazla hafıza . Bazen sözlükten çağrıldığında hafızanın iki katı kadar yer kaplar.

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

Çıkış:

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

Örnek 2:

daktilo tarih saat
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) 

Çıkış
Ashoka The Great Chandragupta The Maurya Modi The Changer 

Yol 5: sorted() işlevini kullanma:   sorted () yazdırmak için kullanılır konteyner sıralanmıştır . BT konteyneri ayırmıyor ancak kabı yalnızca 1 örnek için sıralı düzende yazdırır. Kullanımı set() kopyayı kaldırmak için birleştirilebilir olaylar.

Örnek 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=' ') 

Çıkış:

    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

Örnek 2:

Döngü türleri için Java
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) 

Çıkış:

apple  
banana
grape
guava
guave
orange
pear

Yol 6: Tersine çevrilmiş() işlevini kullanmak:  ters() değerlerini yazdırmak için kullanılır the konteyner ters sırayla . Orijinal listedeki herhangi bir değişikliği yansıtmaz

Örnek 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=' ') 

Çıkış:

The list in reversed order is :   
3 1 2 6 5 3 1

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

Çıkış:

7  
4
1
  • Bu tekniklerin kullanımı hızlıdır ve kodlama çabasını azaltır. for while döngüleri kabın tüm yapısının değiştirilmesini gerektirir.
  • Bu Döngü teknikleri kapta herhangi bir yapısal değişiklik gerektirmez. Tam kullanım amacını sunan anahtar kelimelere sahiptirler. Oysa for while döngüsünde hiçbir ön tahmin veya tahmin yapılamaz, yani amacı bir bakışta anlamak kolay değildir.
  • Döngü tekniği, kodu for & while döngüsüne göre daha kısa hale getirir.

if ifadelerini kullanarak while döngüsü oluşturma teknikleri:

Bu örnekte count adı verilen değişkeni artırmak için while döngüsünü kullanıyoruz. Döngünün içinde sayının 3'e eşit olup olmadığını kontrol etmek için bir if ifadesi kullanırız. Eğer öyleyse bir mesaj yazdırırız.

Yaklaşmak:

Bir sayım değişkenini 0 olarak başlat
Sayım 5'ten az olduğu sürece bir kod bloğunu tekrar tekrar yürütmek için while döngüsünü kullanın
Döngünün içinde sayının 3'e eşit olup olmadığını kontrol etmek için bir if ifadesi kullanın
Sayı 3 ise bir mesaj yazdırın
Her yinelemenin sonunda sayımı 1 artırı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 

Çıkış
Count is 3


Zaman karmaşıklığı: O(n) burada n, sayımın 5'e ulaşması için gereken yineleme sayısıdır.

java demet

Yardımcı Alan: O(1) çünkü kod boyunca yalnızca bir değişken (sayım) kullanılır.

Test Oluştur