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 suddividere gli 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, 40Questo 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, bAnche 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, yellowSe richiedi più elementi di quanti siano disponibili, Ruby restituisce semplicemente quelli esistenti senza generare un errore:
nums = [1, 2, 3]
slice = nums[1, 10]
puts slice # Stampa: 2, 3Scegli questo metodo quando conosci il numero di elementi necessari e usa gli intervalli quando conosci le posizioni esatte.
Sfida
FacileLeggi tre input:
- Una singola riga di numeri interi separati da virgole (ad es.,
5,10,15,20,25,30,35,40) - Un indice iniziale (numero intero)
- 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 sezione dell’array usando la sintassi indice-lunghezza, quindi stampa ogni elemento della sezione estratta su una riga separata.
Ad esempio, se gli input sono 5,10,15,20,25,30,35,40, 2 e 4, l’output dovrebbe essere:
15
20
25
30Se gli input sono 100,200,300,400,500, 0 e 2, l’output dovrebbe essere:
100
200Se gli input sono a,b,c,d,e,f,g, -3 e 2, l’output dovrebbe essere:
e
fSe gli input sono 10,20,30, 1 e 10, l’output dovrebbe essere:
20
30Provalo tu
# Leggi gli input
input_line = gets.chomp
start_index = gets.chomp.to_i
count = gets.chomp.to_i
# Suddividi l'input in un array
arr = input_line.split(',')
# TODO: Scrivi qui sotto il codice per estrarre una porzione dell'array usando la sintassi con indice e lunghezza
# e stampa ogni elemento su una riga separataQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Riepilogo - Logica sempliceOperatori logici Parte 3Operatori logici Parte 47Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire input dall'utente10FizzBuzz con un colpo di scena
Panoramica del giocoIl metodo FizzBuzz13Array avanzati
Slicing degli array con intervalliSlicing degli array con indiciOperatori degli arrayMetodo Include?2Variabili e tipi di dato
Numeri e variabiliTipo di dato stringaTipo di dato booleanoTipo di dato SymbolVerifica dei tipi di datoConvenzioni di denominazioneRiepilogo - Creazione di variabili5Strutture decisionali
Istruzione ifIf-ElseRipasso - Calcolatrice sempliceIf-Else annidatoIstruzione unless8Cicli
Ciclo for con intervalliCiclo whilebreaknextRiepilogo - FattorialeCiclo timesCiclo untilCicli annidatiRiepilogo - Input dinamico3Operatori, parte 1
Operatori aritmeticiOperatore moduloScorciatoie aritmeticheRipasso: matematica sempliceOperatori di confronto6Input/Output di base
Output con putsOutput con print e pOutput con variabiliInput con getsMetodo chompConversione di tipoRipasso - Calcolatore dell'etàRipasso - Vero o falsoEsercitati da solo: Compilatore Ruby online