zip ve unzip
- Kotlin kursu
- İleri seviye
- Ders 57/83
- 5 dk
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'de iki listeyi zip ile birleştir
// her çifti s=n biçiminde dizgiye çevir ve yazdırÖrnek çözüm
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
val (letters, nums) = listOf("a" to 1, "b" to 2).____()
val (letters, nums) = listOf("a" to 1, "b" to 2).unzip()
Açıklama: unzip Pair listesini iki listeye ayırır.