Menu
CoddyTech

Slicing degli array con intervalli

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

A volte è necessario estrarre una parte di un array anziché accedere ai singoli elementi. Ruby permette di suddividere gli array usando gli intervalli, creando un nuovo array che contiene solo gli elementi specificati.

Per estrarre una porzione di un array con un intervallo, inserisci l’intervallo tra parentesi quadre:

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

puts slice  # Produce in output: 20, 30, 40

L'intervallo 1..3 include gli elementi agli indici 1, 2 e 3. Ricorda che gli indici degli array iniziano da 0, quindi l'indice 1 corrisponde al secondo elemento.

Puoi anche usare l'intervallo con tre punti (...) per escludere l'ultimo indice:

letters = ["a", "b", "c", "d", "e"]
slice = letters[0...3]

puts slice  # Stampa: a, b, c

Qui, 0...3 include gli indici 0, 1 e 2, ma si fermano prima dell’indice 3.

Gli indici negativi funzionano anche con gli intervalli. Contano dalla fine dell'array, dove -1 è l'ultimo elemento:

colors = ["red", "green", "blue", "yellow"]
slice = colors[1..-1]

puts slice  # Output: green, blue, yellow

Questo estrae tutto dall’indice 1 fino all’ultimo elemento, il che è utile quando vuoi saltare il primo elemento senza conoscere la lunghezza dell’array.

challenge icon

Sfida

Facile

Leggi due input:

  1. Una singola riga di numeri interi separati da virgole (ad es., 10,20,30,40,50,60,70)
  2. Una specifica di intervallo nel formato start..end o start...end (ad es., 2..5 o 1...4)

Suddividi il primo input in un array di numeri interi. Poi usa l'intervallo del secondo input per selezionare una porzione dell'array e stampa ogni elemento della porzione selezionata su una riga a sé.

L'input dell'intervallo userà due punti (..) per includere l'indice finale oppure tre punti (...) per escluderlo.

Ad esempio, se gli input sono 10,20,30,40,50,60,70 e 2..5, l'output dovrebbe essere:

30
40
50
60

Se gli input sono 5,10,15,20,25,30 e 0...3, l'output dovrebbe essere:

5
10
15

Se gli input sono 100,200,300,400,500 e 1..-1, l'output dovrebbe essere:

200
300
400
500

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

d
e
f

Provalo tu

# Leggi i valori separati da virgole
input_values = gets.chomp

# Leggi la specifica dell'intervallo
range_spec = gets.chomp

# TODO: Scrivi il tuo codice qui sotto
# 1. Dividi input_values in un array
# 2. Analizza range_spec per determinare l'inizio, la fine e se usare .. o ...
# 3. Estrai una porzione dell'array usando l'intervallo appropriato
# 4. Stampa ogni elemento della porzione estratta 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