Take Drop ile Liste Dilimleme
Coddy'nin Kotlin Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 80 / 93.
Kotlin, yalnızca listenin başından veya sonundan öğelere ihtiyaç duyduğunuzda listenin bölümlerini ayıklamak için iki daha basit yöntem sunar: take() ve drop().
take() yöntemi, ilk n öğeyi içeren yeni bir liste döndürür:
val numbers = listOf(10, 20, 30, 40, 50)
val firstThree = numbers.take(3)
println(firstThree) // [10, 20, 30]drop() yöntemi bunun tersini yapar. İlk n öğeyi atlar ve geri kalanları döndürür:
val numbers = listOf(10, 20, 30, 40, 50)
val afterTwo = numbers.drop(2)
println(afterTwo) // [30, 40, 50]subList() yöntemlerinin aksine, bu yöntemler görünümler yerine bağımsız kopyalar döndürür. Ayrıca yalnızca "ilk birkaç" öğeyi veya "ilk birkaç" öğe dışındaki her şeyi istediğinizde daha okunabilirdir.
Orta bölümü çıkarmak için her iki yöntemi birleştirebilirsin:
val letters = listOf("A", "B", "C", "D", "E")
val middle = letters.drop(1).take(3)
println(middle) // [B, C, D]Mevcut olandan daha fazla öğe isterseniz, bu yöntemler hata oluşturmak yerine yalnızca mevcut olanları döndürür:
val short = listOf(1, 2)
println(short.take(10)) // [1, 2]
println(short.drop(10)) // []Görev
OrtaBir tam sayı listesi ve iki sayı alacaksınız: baştan kaç öğenin çıkarılacağı ve çıkarma işleminden sonra kaç öğenin alınacağı.
Listenin ortasındaki bir bölümü çıkarmak için drop() ve take() işlevlerini birlikte kullanın, ardından çıkarılan öğeleri yazdırın.
Girdi biçimi:
- İlk satır: öğe sayısını belirten bir
ntam sayısı - Sonraki
nsatır: listeye eklenecek tam sayılar - Sonraki satır: baştan çıkarılacak öğe sayısı
- Son satır: çıkarma işleminden sonra alınacak öğe sayısı
Çıktı biçimi:
Ortaya çıkan listeyi Kotlin'in varsayılan liste biçiminde yazdırın.
Örnek:
Liste [10, 20, 30, 40, 50, 60], drop değeri 2 ve take değeri 3 ise çıktı şu şekilde olmalıdır:
[30, 40, 50]Kendin dene
fun main() {
// Eleman sayısını oku
val n = readLine()!!.toInt()
// Liste elemanlarını oku
val list = mutableListOf<Int>()
for (i in 1..n) {
list.add(readLine()!!.toInt())
}
// drop ve take değerlerini oku
val dropCount = readLine()!!.toInt()
val takeCount = readLine()!!.toInt()
// TODO: Kodunuzu aşağıya yazın
// Orta bölümü çıkarmak için drop() ve take() kullanın
// Sonucu yazdır
println(result)
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temel Bilgiler bölümündeki tüm dersler
4Operatörler Bölüm 1
Aritmetik OperatörlerModül OperatörüArtırımlı AtamaKarşılaştırma OperatörleriTekrar - Basit Matematik7Temel Girdi/Çıktı
Println FonksiyonuDize ŞablonlarıReadLine GirdisiTür DönüşümüTekrar - Emekliliğe Kalan YıllarTekrar - Doğru veya Yanlış10Fonksiyonlar
Fonksiyon TanımlamaParametreler ve ArgümanlarDönüş DeğerleriAdlandırılmış ArgümanlarVarsayılan DeğerlerTek İfadeli FonksiyonlarTekrar - Sigma FonksiyonuTekrar - Doğrulama Fonksiyonu2Değişkenler
Val ve VarTür ÇıkarımıSayılarStringBooleanAdlandırma KurallarıTekrar - Değişkenleri Başlat5Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Mantıksal Operatörler Bölüm 3If İfadesiyle Üçlü OperatörTekrar - Basit Mantık8Hesap Paylaştırma Hesaplayıcısı
Hoş Geldiniz MesajıGirdi Alma14Gelişmiş Listeler
SubList ile Liste DilimlemeTake Drop ile Liste DilimlemeDizi OperatörleriContains MetoduTekrar - Bir Sayfada Arama3Null Olabilirliği
Null Güvenliği NedirNull Olabilir TürlerGüvenli Çağrı OperatörüElvis OperatörüFonksiyon Görevi TemelleriNull Değil DoğrulamasıÖzet - Güvenli Erişim6Karar Verme
If İfadesiIf - Elseİfade Olarak IfWhen İfadesiAralıklarla WhenTekrar - Basit Hesap Makinesi9Döngüler
For DöngüsüWhile DöngüsüDo-While DöngüsüBreakContinueDöngülerde Aralıklarİç İçe DöngüTekrar - FaktöriyelTekrar - Dinamik GirdiKendi başına pratik yap: Kotlin playground