Python'da zip() İşlevi Nasıl Kullanılır (Yinelenebilirleri Birleştirme)
Birden fazla yinelenebilir öğeyi paralel olarak birleştirmek için Python'un zip() işlevini nasıl kullanacağınızı öğrenin. Sözlük oluşturmada ustalaşın, sıkıştırmayı açın ve uzunluk uyumsuzluklarını giderin.
Genel Bakış
Veri kümeleri üzerinde yineleme yaparken, genellikle birden fazla ilgili listeyi paralel olarak işlemeniz gerekecektir. Örneğin, kullanıcı adları listesini kullanıcı kimlikleri listesiyle eşleştirmek veya X ve Y değerlerinin koordinatlarını eşleştirmek. Python, iç içe geçmiş döngüler veya liste indeksleme sayaçlarını kullanarak öğelere erişmek yerine zarif 'zip()' işlevini sağlar.
"zip(*iterables)" işlevi, argüman olarak birden fazla yinelenebilir öğeyi alır ve bunları toplayarak, i'inci demetin, giriş yinelenebilirlerinin her birinden i'inci öğeyi içerdiği bir demet yineleyicisi döndürür. Bu, tek bir "for" döngüsüyle iki veya daha fazla koleksiyon arasında aynı anda kolayca döngü yapmanıza olanak tanır.
Varsayılan olarak, yinelenebilir en kısa giriş tükendiğinde `zip()` birleştirmeyi durdurur. Daha uzun yinelenebilir öğelerde kalan öğeler atılır. Öğeleri en uzun yinelenebilirlik bitene kadar eşleştirmek istiyorsanız, eksik değerleri bir yer tutucuyla doldurursanız, Python standart kütüphanenin "itertools" modülünde "zip_longest()" sağlar.
Kod ve Yürütme Çıkışı
Bu komut dosyası paralel liste yinelemesini, zip kullanarak sözlük oluşturmayı ve zip_longest kullanarak uyumsuzlukları ele almayı gösterir.
from itertools import zip_longest
names = ["Alice", "Bob", "Charlie"]
scores = [85, 90, 95]
# 1. Basic Zipping in a loop
print("--- Parallel Iteration ---")
for name, score in zip(names, scores):
print(f"{name} scored {score}")
# 2. Creating a dictionary from two lists
user_dict = dict(zip(names, scores))
print("\nCreated Dictionary:", user_dict)
# 3. Handling unequal list lengths with zip_longest
extra_names = ["Alice", "Bob", "Charlie", "David"]
short_scores = [85, 90]
# Standard zip truncates
print("\nStandard zip output:", list(zip(extra_names, short_scores)))
# zip_longest fills missing values
zipped_long = list(zip_longest(extra_names, short_scores, fillvalue="N/A"))
print("zip_longest output:", zipped_long)--- Parallel Iteration ---
Alice scored 85
Bob scored 90
Charlie scored 95
Created Dictionary: {'Alice': 85, 'Bob': 90, 'Charlie': 95}
Standard zip output: [('Alice', 85), ('Bob', 90)]
zip_longest output: [('Alice', 85), ('Bob', 90), ('Charlie', 'N/A'), ('David', 'N/A')]Adım Adım Uygulama
- Birleştirmek istediğiniz birden fazla listeyi veya yinelenebilir öğeyi zip() işlevine iletin.
- Temiz paralel yinelemeler için oluşturulan demetleri bir for döngüsü ifadesinde açın.
- Eşleme için dict(zip(keys_list,values_list)) kullanarak zip nesnesini bir sözlüğe dönüştürün.
- Kuyruk değerlerini kaybetmeden eşit olmayan uzunluktaki listeleri birleştirmek için itertools.zip_longest dosyasını içe aktarın.
Sıkça Sorulan Sorular
Sıkıştırılmış bir tuple dizisini nasıl "açabilirim"?
Paket açma operatörünü *: list(zip(*zipped_tuples)) kullanarak bir diziyi tekrar ayrı listelere açabilirsiniz.
Zip() bellekteki öğeleri kopyalıyor mu?
Hayır, zip(), isteğe bağlı olarak öğeler üreten bir yineleyici döndürür ve bu da onu bellek açısından son derece verimli hale getirir.
İlgili Konular
Python sözlüğünde nasıl döngü yapılacağını veya yineleneceğini öğrenin. Temiz, çalıştırılabilir örneklerle anahtarlar, değerler ve anahtar/değer çiftleri üzerinde döngü oluşturma yöntemlerini keşfedin.
Python'da İki Liste Nasıl BirleştirilirPython'da iki listeyi birleştirmenin ve birleştirmenin en iyi yollarını öğrenin. Artı operatörünü, genişletme yöntemini, liste açmayı ve zincirleme seçeneklerini karşılaştırın.
Önerilen Python Kaynakları
İlgili etkileşimli eğitimler, yardımcı sayfalar ve kod karşılaştırmalarıyla bilginizi genişletin.
Python İşlevleri
Python fonksiyonlarında ustalaşın. Def kullanarak yeniden kullanılabilir kod yazmayı, bağımsız değişkenleri tanımlamayı, değerleri döndürmeyi ve kapsamı yerel ve genel olarak nasıl anlayacağınızı öğrenin.
Python Matematik Modülü İşlevleri Hile Sayfası
Python matematik standart kütüphanesi için hızlı başvuru kılavuzu. Trigonometrik, logaritmik, yuvarlama ve aritmetik fonksiyonların nasıl kullanılacağını öğrenin.
Python vs JavaScript: Hangi Programlama Dili En İyisidir?
Python ve JavaScript arasında kapsamlı bir karşılaştırma. Sözdizimi farklılıklarını, performansı, kullanım örneklerini (arka uç ve ön uç) ve kodlama örneklerini keşfedin.