List Slicing mit Take Drop
Teil des Abschnitts Grundlagen der Kotlin-Journey von Coddy. Lektion 80 von 93.
Kotlin bietet zwei einfachere Methoden zum Extrahieren von Teilen einer Liste, wenn du nur Elemente vom Anfang oder Ende benötigst: take() und drop().
Die Methode take() gibt eine neue Liste zurück, die die ersten n Elemente enthält:
val numbers = listOf(10, 20, 30, 40, 50)
val firstThree = numbers.take(3)
println(firstThree) // [10, 20, 30]Die Methode drop() bewirkt das Gegenteil. Sie überspringt die ersten n Elemente und gibt den Rest zurück:
val numbers = listOf(10, 20, 30, 40, 50)
val afterTwo = numbers.drop(2)
println(afterTwo) // [30, 40, 50]Im Gegensatz zu subList() geben diese Methoden unabhängige Kopien statt Ansichten zurück. Sie sind außerdem besser lesbar, wenn du einfach „die ersten paar“ oder „alles außer den ersten paar“ Elementen möchtest.
Du kannst beide Methoden kombinieren, um einen mittleren Abschnitt zu extrahieren:
val letters = listOf("A", "B", "C", "D", "E")
val middle = letters.drop(1).take(3)
println(middle) // [B, C, D]Wenn du mehr Elemente anforderst, als vorhanden sind, geben diese Methoden einfach das Verfügbare zurück, ohne einen Fehler auszulösen:
val short = listOf(1, 2)
println(short.take(10)) // [1, 2]
println(short.drop(10)) // []Aufgabe
MittelDu erhältst eine Liste von Ganzzahlen und zwei Zahlen: wie viele Elemente vom Anfang entfernt werden sollen und wie viele Elemente danach übernommen werden sollen.
Verwende drop() und take() zusammen, um einen mittleren Abschnitt der Liste zu extrahieren, und gib anschließend die extrahierten Elemente aus.
Eingabeformat:
- Erste Zeile: eine Ganzzahl
n, die die Anzahl der Elemente angibt - Nächste
nZeilen: Ganzzahlen, die der Liste hinzugefügt werden sollen - Nächste Zeile: die Anzahl der Elemente, die vom Anfang entfernt werden sollen
- Letzte Zeile: die Anzahl der Elemente, die nach dem Entfernen übernommen werden sollen
Ausgabeformat:
Gib die resultierende Liste im standardmäßigen Listenformat von Kotlin aus.
Beispiel:
Wenn die Liste [10, 20, 30, 40, 50, 60] lautet, 2 Elemente entfernt werden und 3 Elemente übernommen werden, sollte die Ausgabe wie folgt aussehen:
[30, 40, 50]Probier es selbst
fun main() {
// Lies die Anzahl der Elemente
val n = readLine()!!.toInt()
// Lies die Listenelemente
val list = mutableListOf<Int>()
for (i in 1..n) {
list.add(readLine()!!.toInt())
}
// Lies die drop- und take-Werte
val dropCount = readLine()!!.toInt()
val takeCount = readLine()!!.toInt()
// TODO: Schreibe deinen Code darunter
// Verwende drop() und take(), um den mittleren Abschnitt zu extrahieren
// Gib das Ergebnis aus
println(result)
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorErweiterte ZuweisungVergleichsoperatorenRückblick – Einfache Mathematik7Grundlegende Ein-/Ausgabe
println-FunktionString-VorlagenReadLine-EingabeTypkonvertierungWiederholung – Jahre bis zur RenteWiederholung – Wahr oder falsch10Funktionen
Eine Funktion deklarierenParameter und ArgumenteRückgabewerteBenannte ArgumenteStandardwerteFunktionen mit einem AusdruckRückblick – Sigma-FunktionRückblick – Validierungsfunktion2Variablen
Val vs VarTypinferenzZahlenStringBooleanNamenskonventionenRückblick – Variablen initialisieren5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Logische Operatoren Teil 3Ternär mit If-AusdruckWiederholung – Einfache Logik8Rechner zum Aufteilen der Rechnung
WillkommensnachrichtEingaben erfassen11FizzBuzz mit einer Wendung
SpielübersichtDie FizzBuzz-Funktion14Listen – Fortgeschrittene
List Slicing mit SubListList Slicing mit Take DropSequenzoperatorenDie Contains-MethodeWiederholung – Eine Seite durchsuchen3Nullbarkeit
Was ist Null-Sicherheit?Nullable-TypenOperator für sicheren AufrufElvis-OperatorGrundlagen der FunktionsaufgabeAssertion auf Nicht-NullRückblick – Sicherer Zugriff6Entscheidungen treffen
If-AnweisungIf - ElseIf als AusdruckWhen-AusdruckWhen mit BereichenRückblick - Einfacher Taschenrechner9Schleifen
For-SchleifeWhile-SchleifeDo-While-SchleifeBreakContinueBereiche in SchleifenVerschachtelte SchleifeRückblick – FakultätRückblick – Dynamische EingabeÜbe selbstständig: Kotlin-Playground