CodeBlanks Logo Icon CodeBlanks

zip ve unzip

zip ve unzip ile birleştirme öğrenirsin.

zip ve unzip

zip, iki koleksiyonu paralel olarak birleştirir; her öğe bir Pair olur. unzip ise Pair listesini iki listeye ayırır.

Örnek: listOf("a", "b").zip(listOf(1, 2)) ifadesi [(a, 1), (b, 2)] döndürür. listOf("a" to 1, "b" to 2).unzip() ise ([a, b], [1, 2]) verir. zip daha kısa listenin boyuna göre birleştirir.

zip ile dönüşüm

zip'e lambda verirsen her çift için bir dönüşüm yapılır. Bu, iki listeyi ilişkilendirip tek bir liste üretmenin özlü yoludur.

Örnek: listOf("a", "b").zip(listOf(1, 2)) { s, n -> "$s$n" }. Bu, ["a1", "b2"] döndürür. Lambda iki parametre alır: ilk ve ikinci listenin öğesi. Bu kalıp, etiket-değer çiftlerini birleştirmek için kullanışlıdır.

Uygulama zip ile etiket-değer birleştir

main içinde listOf("a", "b", "c").zip(listOf(1, 2, 3)) { s, n -> "$s=$n" } sonucunu bir değişkene ata ve println ile yazdır.

Başlangıç kodu

Main.kt
// main'de iki listeyi zip ile birleştir
// her çifti s=n biçiminde dizgiye çevir ve yazdır

Örnek çözüm

Main.kt
fun main() {
    val pairs = listOf("a", "b", "c").zip(listOf(1, 2, 3)) { s, n -> "$s=$n" }
    println(pairs)
}

Beklenen çıktı

[a=1, b=2, c=3]

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 zip/unzip parçalarını eşle

Kavram Anlamı
zip Paralel birleştirme
unzip İki listeye ayırma
Pair Öğe çifti
(a, 1) Sonuç çifti

2 listOf("a", "b").zip(listOf(1, 2, 3)) çağrısı kaç elemanlı bir liste döndürür?

  • 1
  • 5
  • 3
  • 2 Doğru cevap

Açıklama: zip daha kısa listenin boyuna göre birleştirir.

3 unzip çağrısını tamamla

Soru
val (letters, nums) = listOf("a" to 1, "b" to 2).____()
Cevap
val (letters, nums) = listOf("a" to 1, "b" to 2).unzip()

Açıklama: unzip Pair listesini iki listeye ayırır.

İleri seviye bölümündeki tüm dersler