Python`da Yineleyici İşlevleri | Set 2 (islice (), yıldız haritası (), tee () ..)

| |

1. islice (yinelenebilir, başlat, durdur, adım) : — bu yineleyici , bağımsız değişken olarak iletilen yinelenebilir kapsayıcısında başvurulan değerleri seçici olarak yazdırır. Bu yineleyici 4 bağımsız değişken, yinelemeli bir kapsayıcı, başlangıç ​​konumu, bitiş konumu ve adım alır.

2. yıldız haritası (işlev, demet listesi) : — Bu yineleyici, argüman olarak bir işlevi ve bir demet listesi alır ve listedeki her bir demetten işleve göre bir değer döndürür.

# Nasıl çalıştığını gösteren Python kodu
# islice () ve yıldız haritası ()


# import & quot; itertools " yineleyici işlemleri için

içe aktar itertools


# başlatma listesi

li = < kod sınıfı = "düz"> [ 2 , 4 , 5 , 7 , 8 , 10 , 20 ]


# tuple listesini başlat

li1 = [( 1 , 10 , 5 ), ( 8 , 4 , 1 ), ( 5 , 4 , 9 ), ( 11 , 10 , 1 )]


# islice kullanarak ( ) listeyi şuna göre dilimlemek için ... ihtiyaç
# 2. dizinden 6. dizine yazdırmaya başlar 2 atlama

print ( "Dilimlenmiş liste değerleri şunlardır:" , end = "")

yazdır ( liste (itertools.islice (li, 1 , 6 , 2 ) ))


# bir değer seçmek için starmap () kullanın. function
# tüm demet değerlerinin minimumunu seçer

print ( "İşleve göre değerler şunlardır:" , end = "")

yazdır ( liste (itertools.starmap ( min , li1)))

Çıktı:

 Dilimlenmiş liste değerleri şunlardır: [4, 7, 10] Değerler acc. işlevi şunlardır: [1, 1, 4, 1] 

3. Takewhile (işlev, yinelenebilir) : — bu yineleyici, drop while()’ın tersidir, işlev ilk kez false döndürene kadar değerlerini yazdırır.

4. tee (yineleyici, sayım) : — Bu yineleyici kapsayıcıyı bağımsız değişkende bahsedilen birden çok yineleyiciye böler.

# Nasıl çalıştığını gösteren Python kodu
# takewhile () ve tee ()


# import & quot; itertools " yineleyici işlemleri için

içe aktar itertools


# başlatma listesi

li = < kod sınıfı = "düz"> [ 2 , 4 , 6 , 7 , 8 , 10 , 20 ]


# listeyi bir yineleyiciye kaydedin

iti = yineleyici (li)


# kullanarak Takewhile () koşul yanlış olana kadar değerleri yazdırmak için.

print ( " Liste değerleri ​​1. false değerine kadar: " , end = " ")

yazdır ( liste (itertools.takewhile ( lambda x: x % 2 = = 0 , li)))


# tee kullanarak ( ) yineleyicileri listelemek için
# aynı değere sahip 3 yineleyicinin listesini yapar.

o = itertools.tee (iti , 3 )


# yazdırma yineleyici değerleri

yazdır ( "Yineleyiciler şunlardır:" )

için i aralığında ( 0 , 3 ): < /p>

yazdır ( liste (it [i]))

Çıktı:

1. yanlış değere kadar olan liste değerleri: [2, 4, 6] Yineleyiciler: [2, 4, 6, 7, 8, 10, 20] [2, 4, 6, 7, 8, 10, 20] [2, 4, 6, 7 , 8, 10, 20]

5. zip_longest (yinelenebilir1, yinelenebilir2, dolgu.) : &# 8212; bu yineleyici, yinelenebilirlerin değerlerini birer birer yazdırır . Yinelemelerden biri tamamen yazdırılırsa, kalan değerler fillvalue’ye atanan değerlerle doldurulur .

# Nasıl çalıştığını gösteren Python kodu
# zip_longest ()


# import & quot; itertools " yineleyici işlemleri için

içe aktar itertools


# iki yinelemeyi birleştirmek için zip_longest () kullanarak.

print ( "Birleştirilmiş değerler ​iterables :" )

print ( * (itertools.zip_longest ( ’GesoGes’ , ’ ekfrek’ , fillvalue = ’_’ )))

Çıktı:

 Yinelenebilirlerin birleşik değerleri: (’G’,’ e’) (’e ’,’ k’) (’s’,’ f’) (’o’,’ r ’) (’ G’, ’e’) (’ e’, ’k’) (’ s’, ’_’ ) 

Kombinatoryal yineleyiciler

1. ürün (iter1, iter2) : — Bu yineleyici, bağımsız değişken olarak iletilen iki yinelenebilir kapsayıcının Kartezyen ürününü yazdırır.

2. permütasyonlar (iter, grup_boyutu) : — bu yineleyici, yinelenebilir öğenin tüm öğelerinin tüm olası permütasyonlarını yazdırır. Her permütasyon grubunun boyutu , group_size bağımsız değişkeni tarafından belirlenir .

# Python- demo kodu
# ürün () ve permütasyon ()


# import & quot; itertools " yineleyici işlemleri için

içe aktar itertools


# bir Kartezyen ürünü yazdırmak için ürün () kullanma

print ( "Konteynerlerin kartezyen çarpımı:" )

yazdır ( liste (itertools.product ( ’AB’ , ’ 12’ )))


# olası tüm permütasyonları hesaplamak için permütasyonları kullanın

print ( "Verilen kapsayıcının tüm permütasyonları:" < kod sınıfı = "düz">)

yazdır ( list (itertools.permutations ( ’GfG’ , ) 2 )))

Çıktı:

 Kapların kartezyen çarpımı: [(’A’, ’1’), (’ A ’, ’2’), (’ B’, ’1’), (’ B’, ’2’)] Verilen kapsayıcının tüm permütasyonları: [(’ G’, ’f’), (’ G ’, ’G’), (’ f’, ’G’), (’ f’, ’G’), (’ G’, ’G’), (’ G’, ’f’)] 

3. kombinasyonlar (yinelenebilir, grup_boyutu) : — bu yineleyici, belirtilen grup boyutunda bağımsız değişkenlerde iletilen kapsayıcının tüm olası kombinasyonlarını (değiştirilmeden) sıralı olarak yazdırır.

4.kombinasyonlar_with_replacement (yinelenebilir, grup_boyutu) : — bu yineleyici, belirtilen grup boyutunda bağımsız değişkenlerde iletilen kapsayıcının tüm olası kombinasyonlarını (değiştirilerek) sıralı olarak yazdırır.

# Nasıl çalıştığını gösteren Python kodu
# kombinasyon () ve kombinasyon_with_replacement ()


# import & quot; itertools " yineleyici işlemleri için

içe aktar itertools


# her kombinasyonu yazdırmak için kombinasyonları () kullanın
# (değiştirmeler olmadan)

print ( "Sıralanmış düzende (değiştirilmeden) kapsayıcının tüm kombinasyonları: " )

yazdır ( liste (itertools.combinations ( ’1234’ , 2 )))


# her kombinasyonu yazdırmak için kombinasyon_with_replacement () kullanarak
# değiştirme ile

print ( "Sıralanmış sırada tüm kap kombinasyonu (değiştirme ile) ) şöyledir:" )

yazdır ( liste (itertools.combinations_with_replacement ( ’GfG’ , 2 )))

Çıktı:

 Sıralı düzende (değiştirilmeden) kapsayıcının tüm kombinasyonları: [(’ 1’,’ 2 ’), (’ 1’, ’3’), (’ 1’, ’4’), (’ 2’, ’3’), (’ 2’, ’4’), (’ 3’, ’4 ’)] Sıralı düzende (değiştirilmiş olarak) kapsayıcının tüm kombinasyonları: [(’ G’, ’G’), (’ G’, ’f’), (’ G’, ’G ’), (’ f’, ’f’), (’ f’, ’G’), (’ G’, ’G’)] 

Sonsuz yineleyiciler

1. say (başlangıç, adım) : — Bu yineleyici "başlangıçta" yazdırmaya başlar ve süresiz olarak yazdırır . Adımlardan bahsedilirse sayılar atlanır, aksi takdirde adım varsayılan olarak 1’dir.

Örnek:

 iterator.count (5,2) çıktılar - 5,7,9,11 .. . sonsuz 

2. döngü (yinelenebilir) : — bu yineleyici, geçen kapsayıcıdan sırayla tüm değerleri yazdırır. Tüm öğeler döngüye alındığında yeniden yazdırmaya devam eder.

Örnek:

 iterator.cycle ([1,2,3,4]) yazdırır - 1,2,3,4,1,2,3,4,1 . .. sonsuz 

3. tekrar (val, num) : — Bu yineleyici, iletilen değeri sonsuz sayıda tekrar tekrar yazdırır . Bir numaradan bahsediliyorsa, o numaraya kadardır.

# Nasıl çalıştığını gösteren Python kodu
# tekrar ()


# import & quot; itertools " yineleyici işlemler için

içe aktar itertools


# sayıyı art arda yazdırmak için tekrar () kullanarak

yazdır ( "Sayıları tekrar tekrar yazdırma:" )

yazdır ( liste (itertools.repeat ( 25 , 4 )) )

Çıktı:

 tekrar tekrar sayılar: [25, 25, 25, 25] 

Bu makale Manjeet Singh . Python.Engineering iseniz ve katkıda bulunmak istiyorsanız, Contribute.python.engineering kullanarak veya bir makale yayınlayarak da bir makale yazabilirsiniz. @ python.engineering’e katkıda bulunun. Python.Engineering ana sayfasında görünen makaleme bakın ve diğer meraklılara yardım edin.

Yanlış bir şey bulursanız veya yukarıda tartışılan konu hakkında daha fazla bilgi paylaşmak isterseniz lütfen yorum gönderin.