Découpage de liste avec Take Drop
Fait partie de la section Fondamentaux du Journey Kotlin de Coddy. Leçon 80 sur 93.
Kotlin fournit deux méthodes plus simples pour extraire des portions d’une liste lorsque vous n’avez besoin que des éléments du début ou de la fin : take() et drop().
La méthode take() renvoie une nouvelle liste contenant les n premiers éléments :
val numbers = listOf(10, 20, 30, 40, 50)
val firstThree = numbers.take(3)
println(firstThree) // [10, 20, 30]La méthode drop() fait le contraire. Elle ignore les n premiers éléments et renvoie le reste :
val numbers = listOf(10, 20, 30, 40, 50)
val afterTwo = numbers.drop(2)
println(afterTwo) // [30, 40, 50]Contrairement à subList(), ces méthodes renvoient des copies indépendantes plutôt que des vues. Elles sont également plus lisibles lorsque vous voulez simplement « les premiers éléments » ou « tous les éléments sauf les premiers ».
Vous pouvez combiner les deux méthodes pour extraire une section centrale :
val letters = listOf("A", "B", "C", "D", "E")
val middle = letters.drop(1).take(3)
println(middle) // [B, C, D]Si vous demandez plus d’éléments qu’il n’en existe, ces méthodes renvoient simplement ce qui est disponible sans générer d’erreur :
val short = listOf(1, 2)
println(short.take(10)) // [1, 2]
println(short.drop(10)) // []Défi
MoyenVous recevrez une liste d’entiers et deux nombres : le nombre d’éléments à supprimer au début et le nombre d’éléments à prendre après la suppression.
Utilisez drop() et take() ensemble pour extraire une section centrale de la liste, puis affichez les éléments extraits.
Format d’entrée :
- Première ligne : un entier
nreprésentant le nombre d’éléments - Les
nlignes suivantes : les entiers à ajouter à la liste - Ligne suivante : le nombre d’éléments à supprimer au début
- Dernière ligne : le nombre d’éléments à prendre après la suppression
Format de sortie :
Affichez la liste résultante au format de liste par défaut de Kotlin.
Exemple :
Si la liste est [10, 20, 30, 40, 50, 60], que la valeur de drop est 2 et que la valeur de take est 3, la sortie doit être :
[30, 40, 50]Essayez vous-même
fun main() {
// Lire le nombre d'éléments
val n = readLine()!!.toInt()
// Lire les éléments de la liste
val list = mutableListOf<Int>()
for (i in 1..n) {
list.add(readLine()!!.toInt())
}
// Lire les valeurs de drop et take
val dropCount = readLine()!!.toInt()
val takeCount = readLine()!!.toInt()
// TODO: Écrivez votre code ci-dessous
// Utilisez drop() et take() pour extraire la section du milieu
// Afficher le résultat
println(result)
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs, partie 1
Opérateurs arithmétiquesOpérateur moduloAffectation augmentéeOpérateurs de comparaisonRécapitulatif - Mathématiques simples7E/S de base
Fonction PrintlnModèles de chaînesEntrée ReadLineConversion de typeRécapitulatif - Années avant la retraiteRécapitulatif - Vrai ou faux10Fonctions
Déclarer une fonctionParamètres et argumentsValeurs de retourArguments nommésValeurs par défautFonctions à expression uniqueRécapitulatif - Fonction SigmaRécapitulatif - Fonction de validation2Variables
Val ou VarInférence de typeNombresChaîne de caractèresBooléenConventions de nommageRécapitulatif - Initialiser des variables5Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Opérateurs logiques, partie 3Ternaire avec une expression ifRécapitulatif - Logique simple8Calculateur de partage d’addition
Message de bienvenueSaisie des données11FizzBuzz avec une variante
Aperçu du jeuLa fonction FizzBuzz14Listes avancées
Découpage de liste avec SubListDécoupage de liste avec Take DropOpérateurs de séquenceLa méthode ContainsRécapitulatif - Rechercher une page3Nullabilité
Qu’est-ce que la sécurité vis-à-vis de nullTypes nullableOpérateur d’appel sécuriséOpérateur ElvisBases des défis de fonctionsAssertion de non-nullitéRécapitulatif - Accès sécurisé6Prise de décision
Instruction IfIf - ElseIf comme expressionExpression WhenWhen avec des plagesRécapitulatif - Calculatrice simple9Boucles
Boucle ForBoucle WhileBoucle Do-WhileBreakContinuePlages dans les bouclesBoucle imbriquéeRécapitulatif - FactorielleRécapitulatif - Entrée dynamiqueEntraînez-vous par vous-même : Playground Kotlin