Menu
CoddyTech

Slicing degli array con indici

Fa parte della sezione Fondamenti del percorso Ruby di Coddy. Lezione 70 di 88.

Ruby offre un altro modo per estrarre una porzione di un array usando un indice iniziale e una lunghezza. Invece di specificare un intervallo, fornisci due numeri: da dove iniziare e quanti elementi estrarre.

La sintassi usa una virgola per separare l’indice iniziale dal conteggio:

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

puts slice  # Restituisce: 20, 30, 40

Questo estrae 3 elementi a partire dall’indice 1. Il primo numero è la posizione iniziale e il secondo indica quanti elementi vuoi.

Questo approccio è particolarmente utile quando sai esattamente quanti elementi ti servono:

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

puts first_two  # Stampa: a, b

Anche qui funzionano gli indici negativi. Puoi iniziare dalla fine dell'array:

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

puts last_two  # Stampa: blue, yellow

Se richiedi più elementi di quelli disponibili, Ruby restituisce semplicemente quelli presenti senza generare un errore:

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

puts slice  # Restituisce: 2, 3

Scegli questo metodo quando conosci il numero di elementi necessari e usa gli intervalli quando conosci le posizioni esatte.

challenge icon

Sfida

Facile

Leggi tre input:

  1. Una singola riga di numeri interi separati da virgole (ad es., 5,10,15,20,25,30,35,40)
  2. Un indice iniziale (numero intero)
  3. Il numero di elementi da estrarre (numero intero)

Dividi il primo input in un array di numeri interi. Usa l'indice iniziale e il conteggio per estrarre una porzione dell'array usando la sintassi indice-e-lunghezza, poi stampa ogni elemento della porzione estratta su una riga separata.

Per esempio, se gli input sono 5,10,15,20,25,30,35,40, 2 e 4, l'output dovrebbe essere:

15
20
25
30

Se gli input sono 100,200,300,400,500, 0 e 2, l'output dovrebbe essere:

100
200

Se gli input sono a,b,c,d,e,f,g, -3 e 2, l'output dovrebbe essere:

e
f

Se gli input sono 10,20,30, 1 e 10, l'output dovrebbe essere:

20
30

Provalo tu

# Leggi i dati di input
input_line = gets.chomp
start_index = gets.chomp.to_i
count = gets.chomp.to_i

# Dividi l'input in un array
arr = input_line.split(',')

# TODO: Scrivi il tuo codice qui sotto per estrarre una porzione dell'array usando la sintassi con indice e lunghezza
# e stampa ogni elemento su una riga separata
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore Ruby online