Itertools, Python'un sağladığı en kullanışlı modüllerden biridir. İşlevleri, listeler ve dizilerle çalışmayı kolaylaştırır. İster bir dizideki değerlerin tüm permütasyonlarına ihtiyacınız olsun, ister bir dizedeki karakterleri gruplamak isteyin, Itertools size yardımcı olabilir.
Bu tür yaygın durumlar için kod yazmak sıkıcı ve hataya açık olabilir. Bu nedenle, geliştiriciler tüm bunları sizin için yapacak kütüphaneler oluşturdular. Itertools'u içe aktararak bu işlevleri kullanabilirsiniz. Bu makalede Python'daki Itertools modülü ve işlevleri hakkında bilgi edineceksiniz.
Resmi piton belgeler, Itertools'un yineleyiciler oluşturmak için kod içerdiğini açıklar. Bu modül, listeler ve dizilerle çalışmak için hızlı ve verimli işlevler sağlar.
Bu modülü kullanmadan önce, aşağıdaki sözdizimini kullanarak içe aktarmanız gerekir:
itertools'u içe aktar
Bu modülde üç farklı tipte yineleyici mevcuttur.
- Sonsuz yineleyiciler
- kombinatorik yineleyiciler
- Yineleyicileri sonlandırma
Sonsuz Yineleyiciler
Sonsuz yineleyiciler bir döngüyü sonsuz olarak çalıştırabilir. Bu işlevler daha çok bir döngü için. Üç sonsuz yineleyici vardır.
1. saymak (başlangıç, adım)
NS saymak() işlev iki parametre alır: Başlat ve adım. Döngü, başlangıç değerinden başlar ve varsayılan olarak 1 olan adım adım artan değerleri döndürür. Aşağıda verilen örneği düşünün: döngü 2'den başlar ve her seferinde 2 ekleyecektir. değeri olduğunda döngü kırılır ben 10 olur.
itertools.count'ta i için (2,2):
eğer ben == 10:
kırmak
Başka:
yazdır (i, bitiş=" ")
Çıktı:
2 4 6 8
2. tekrarla (sayı, TimesToRepeat)
NS tekrarlamak() fonksiyon iki parametre kabul eder. Birincisi, fonksiyonun tekrar tekrar ürettiği bir değerdir. İkinci parametre, sayının kaç kez tekrarlanması gerektiğidir. İkinci parametreyi belirtmezseniz, döngü sonsuz olarak çalışacaktır.
itertools.repeat'teki i için (2,5):
yazdır (i, bitiş=" ")
Çıktı:
2 2 2 2 2
3. döngü (giriş)
NS Çevrim() işlevi, girişi yineler ve belirli bir sırada tek tek öğeleri yazdırır. Girdisinin sonuna ulaştığında, Çevrim baştan yeniden başlar.
c = 0
var = "12345"
itertools.cycle'da (var) i için:
c == 12 ise:
kırmak
Başka:
c = c + 1
yazdır (i, bitiş=" ")
Çıktı:
1 2 3 4 5 1 2 3 4 5 1 2
kombinatorik yineleyiciler
Birleştirici yineleyiciler, permütasyonlar, kombinasyonlar ve kartezyen ürünleri gerçekleştirmek için işlevler sağlar.
1. ürün (girdi)
NS ürün() işlevi belirtilen girdinin kartezyen çarpımını hesaplar. Bir yineleyicinin kartezyen çarpımını kendisi ile hesaplayan bir tekrar parametresine sahiptir. Opsiyonel bir parametredir.
dizi = [1,2,3]
print (liste (itertools.product (dizi, tekrar=2)))
dizi = "ABC"
print (liste (itertools.product (string, "XYZ")))
Çıktı:
Örnek 1 [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
Örnek 2 [('A', 'X'), ('A', 'Y'), ('A', 'Z'), ('B', 'X'), ('B', 'Y' '), ('B', 'Z'), ('C', 'X'), ('C', 'Y'), ('C', 'Z')]
2. permütasyonlar (giriş, boyut)
Bu işlev, verilen yinelenebilir öğenin tüm permütasyonlarının bir demetini döndürür. İki parametreyi kabul eder: yinelenebilir ve grup boyutu. Grup boyutu belirtilmezse, yinelenebilirin kendisiyle aynı uzunlukta gruplar oluşturacaktır.
dizi = [1,2,3,4]
print (liste (itertools.permutations (arr, 2)))
Çıktı:
[(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]
İlgili: Bilmeniz Gereken Python İşlevleri
3. kombinasyonlar (giriş, uzunluk)
NS kombinasyonlar() işlevi, verilen yineleyicinin kombinasyonlarını hesaplamaya yardımcı olur. Bu işlevin girdisinin öğe sırasını koruduğunu unutmayın. Süre permütasyonlar yalnızca sıraya göre farklılık gösteren değerleri içerir, kombinasyonlar benzersiz değerler üretir.
dizi = [1,2,3,4]
yazdır (liste (itertools.combinations (dizi, 3)))
Çıktı:
[(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]
Yineleyicileri sonlandırma
Sonlandırıcı yineleyiciler, girdiye verilen koşullara göre çıktı üretir. Bunu en iyi bazı örnek işlevlerden anlayabilirsiniz.
1. biriktirmek (giriş, operatör)
NS biriktirmek() işlev iki bağımsız değişkeni kabul eder: yinelenebilir ve bir operatör. Operatörü kümülatif bir toplama ve sırayla her bir girdi öğesine uygulayarak çıktı üretir. Operatör isteğe bağlı bir argümandır. Eğer geçmezseniz, bu fonksiyon toplama işlemini gerçekleştirecektir.
ithalat operatörü
dizi = [1,2,3,4]
yazdır (liste (itertools.accumulate (arr)))
yazdır (liste (itertools.accumulate (dizi, operatör.sub)))
Çıktı:
[1, 3, 6, 10]
[1, -1, -4, -8]
2. yıldız haritası (işlev, giriş)
NS yıldız haritası() function, bir işlevi ve tanımlama listesini argümanları olarak kabul eder. Fonksiyonu girdideki her bir demete uygulayarak dönüş değerlerini hesaplar. Verilen örnekte, bu fonksiyon her bir demetin maksimum değerini hesaplayacak ve onu bir dizide döndürecektir.
dizi = [(1,2,3), (4,5,6), (7,8,9)]
yazdır (liste (itertools.starmap (maks, dizi)))
Çıktı:
[3, 6, 9]
İlgili: Python'da Tuples Nasıl Oluşturulur ve Kullanılır
3. yanlış filtre (işlev)
NS yanlış filtre() işlev, geçirilen işlevdeki koşulu karşılamayan değerleri döndürür. Aşağıda verilen kod, tüm tek değerleri kaldırır.
dizi = [1,2,3,4]
print (liste (itertools.filterfalse (lambda x: x % 2 != 0, arr)))
Çıktı:
[2, 4]
Python Kodlama Yolculuğunuza Devam Edin
Artık Itertools modülünü öğrendiğinize göre, diğer Python modüllerini keşfetme zamanı. Python, çok çeşitli görevler için modüllere ve kitaplıklara sahiptir. Fourier dönüşümü ve AI/ML uygulamaları gibi gelişmiş kavramları içerirler.
Bazı modüller diğerlerinden daha karmaşıktır ve öğrenmesi daha uzun sürer. Tkinter modülü, Python'da tam GUI uygulamaları oluşturmanıza olanak tanır.
Bu başlangıç projesiyle Python Tkinter becerilerinizi geliştirin.
Sonrakini Oku
- Programlama
- Programlama
- piton
Unnati, hevesli bir tam yığın geliştiricidir. Çeşitli programlama dillerini kullanarak projeler oluşturmayı seviyor. Boş zamanlarında gitar çalmayı çok seviyor ve yemek yapmayı çok seviyor.
Haber bültenimize abone ol
Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!
Abone olmak için buraya tıklayın