Menu
Coddy logo textTech

Slicing de tableaux avec des index

Fait partie de la section Fondamentaux du Journey Ruby de Coddy — leçon 70 sur 88.

Ruby offre une autre façon de découper des tableaux en utilisant un index de départ et une longueur. Au lieu de spécifier une plage, vous fournissez deux nombres : où commencer et combien d'éléments extraire.

La syntaxe utilise une virgule pour séparer l'index de départ du nombre d'éléments :

numbers = [10, 20, 30, 40, 50]
slice = numbers[1, 3]

puts slice  # Affiche : 20, 30, 40

Ceci extrait 3 éléments à partir de l'index 1. Le premier nombre est la position de départ, et le second est le nombre d'éléments que vous voulez.

Cette approche est particulièrement utile lorsque vous savez exactement de combien d'éléments vous avez besoin :

letters = ["a", "b", "c", "d", "e"]
first_two = letters[0, 2]

puts first_two  # Affiche : a, b

Les indices négatifs fonctionnent également ici. Vous pouvez commencer par la fin du tableau :

colors = ["red", "green", "blue", "yellow"]
last_two = colors[-2, 2]

puts last_two  # Affiche : blue, yellow

Si vous demandez plus d'éléments qu'il n'en existe, Ruby retourne simplement ce qui est présent sans lever d'erreur :

nums = [1, 2, 3]
slice = nums[1, 10]

puts slice  # Affiche : 2, 3

Choisissez cette méthode lorsque vous connaissez le nombre d'éléments nécessaires, et utilisez des plages lorsque vous connaissez les positions exactes.

challenge icon

Défi

Facile

Lisez trois entrées :

  1. Une seule ligne d'entiers séparés par des virgules (par exemple, 5,10,15,20,25,30,35,40)
  2. Un index de départ (entier)
  3. Le nombre d'éléments à extraire (entier)

Divisez la première entrée en un tableau d'entiers. Utilisez l'index de départ et le nombre d'éléments pour découper le tableau en utilisant la syntaxe index-et-longueur, puis affichez chaque élément de la partie découpée sur sa propre ligne.

Par exemple, si les entrées sont 5,10,15,20,25,30,35,40, 2, et 4, la sortie devrait être :

15
20
25
30

Si les entrées sont 100,200,300,400,500, 0, et 2, la sortie devrait être :

100
200

Si les entrées sont a,b,c,d,e,f,g, -3, et 2, la sortie devrait être :

e
f

Si les entrées sont 10,20,30, 1, et 10, la sortie devrait être :

20
30

Aide-mémoire

Ruby permet de découper des tableaux en utilisant un index de départ et une longueur. La syntaxe utilise une virgule pour séparer l'index de départ du nombre d'éléments :

array[start_index, length]

Exemple de base :

numbers = [10, 20, 30, 40, 50]
slice = numbers[1, 3]
puts slice  # Affiche : 20, 30, 40

Le premier nombre est la position de départ, et le second est le nombre d'éléments à extraire.

Les index négatifs fonctionnent avec cette syntaxe, vous permettant de commencer par la fin du tableau :

colors = ["red", "green", "blue", "yellow"]
last_two = colors[-2, 2]
puts last_two  # Affiche : blue, yellow

Si vous demandez plus d'éléments qu'il n'en existe, Ruby renvoie ce qui est disponible sans générer d'erreur :

nums = [1, 2, 3]
slice = nums[1, 10]
puts slice  # Affiche : 2, 3

Essayez vous-même

# Lire les entrées
input_line = gets.chomp
start_index = gets.chomp.to_i
count = gets.chomp.to_i

# Diviser l'entrée en un tableau
arr = input_line.split(',')

# TODO: Écrivez votre code ci-dessous pour découper le tableau en utilisant la syntaxe index-et-longueur
# et affichez chaque élément sur sa propre ligne
quiz iconTestez-vous

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