Array Slicing mit Indizes
Teil des Abschnitts Grundlagen der Ruby-Journey von Coddy — Lektion 70 von 88.
Ruby bietet eine weitere Möglichkeit, Arrays mithilfe eines Startindex und einer Länge zu zerteilen. Anstatt einen Bereich anzugeben, geben Sie zwei Zahlen an: wo begonnen werden soll und wie viele Elemente extrahiert werden sollen.
Die Syntax verwendet ein Komma, um den Startindex von der Anzahl zu trennen:
numbers = [10, 20, 30, 40, 50]
slice = numbers[1, 3]
puts slice # Ausgabe: 20, 30, 40Dies extrahiert 3 Elemente beginnend bei Index 1. Die erste Zahl ist die Startposition und die zweite gibt an, wie viele Elemente Sie möchten.
Dieser Ansatz ist besonders nützlich, wenn Sie genau wissen, wie viele Elemente Sie benötigen:
letters = ["a", "b", "c", "d", "e"]
first_two = letters[0, 2]
puts first_two # Ausgabe: a, bNegative Indizes funktionieren hier auch. Sie können am Ende des Arrays beginnen:
colors = ["red", "green", "blue", "yellow"]
last_two = colors[-2, 2]
puts last_two # Ausgabe: blue, yellowWenn Sie mehr Elemente anfordern, als verfügbar sind, gibt Ruby einfach das zurück, was vorhanden ist, ohne einen Fehler auszulösen:
nums = [1, 2, 3]
slice = nums[1, 10]
puts slice # Ausgabe: 2, 3Wählen Sie diese Methode, wenn Sie die Anzahl der benötigten Elemente kennen, und verwenden Sie Bereiche, wenn Sie die genauen Positionen kennen.
Aufgabe
EinfachLies drei Eingaben ein:
- Eine einzelne Zeile mit durch Kommas getrennten Ganzzahlen (z. B.
5,10,15,20,25,30,35,40) - Einen Startindex (Ganzzahl)
- Die Anzahl der zu extrahierenden Elemente (Ganzzahl)
Teile die erste Eingabe in ein Array von Ganzzahlen auf. Verwende den Startindex und die Anzahl, um das Array mithilfe der Index-und-Längen-Syntax zu schneiden (slice), und gib dann jedes Element des geschnittenen Teils in einer eigenen Zeile aus.
Wenn die Eingaben beispielsweise 5,10,15,20,25,30,35,40, 2 und 4 sind, sollte die Ausgabe wie folgt aussehen:
15
20
25
30Wenn die Eingaben 100,200,300,400,500, 0 und 2 sind, sollte die Ausgabe wie folgt aussehen:
100
200Wenn die Eingaben a,b,c,d,e,f,g, -3 und 2 sind, sollte die Ausgabe wie folgt aussehen:
e
fWenn die Eingaben 10,20,30, 1 und 10 sind, sollte die Ausgabe wie folgt aussehen:
20
30Spickzettel
Ruby ermöglicht das Slicing von Arrays unter Verwendung eines Startindex und einer Länge. Die Syntax verwendet ein Komma, um den Startindex von der Anzahl zu trennen:
array[start_index, length]Grundlegendes Beispiel:
numbers = [10, 20, 30, 40, 50]
slice = numbers[1, 3]
puts slice # Outputs: 20, 30, 40Die erste Zahl ist die Startposition und die zweite gibt an, wie viele Elemente extrahiert werden sollen.
Negative Indizes funktionieren mit dieser Syntax ebenfalls, sodass Sie am Ende des Arrays beginnen können:
colors = ["red", "green", "blue", "yellow"]
last_two = colors[-2, 2]
puts last_two # Outputs: blue, yellowWenn Sie mehr Elemente anfordern, als verfügbar sind, gibt Ruby das zurück, was vorhanden ist, ohne einen Fehler auszulösen:
nums = [1, 2, 3]
slice = nums[1, 10]
puts slice # Outputs: 2, 3Probier es selbst
# Eingaben lesen
input_line = gets.chomp
start_index = gets.chomp.to_i
count = gets.chomp.to_i
# Die Eingabe in ein Array aufteilen
arr = input_line.split(',')
# TODO: Schreibe deinen Code unten, um das Array mit der Index-und-Längen-Syntax zu zerteilen
# und jedes Element in einer eigenen Zeile auszugebenDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Wiederholung – Einfache LogikLogische Operatoren Teil 3Logische Operatoren Teil 47Rechnungs-Splitter
WillkommensnachrichtBenutzereingaben abfragen10FizzBuzz mit Twist
SpielübersichtDie FizzBuzz-Methode13Arrays für Fortgeschrittene
Array Slicing mit BereichenArray Slicing mit IndizesArray-OperatorenInclude? Methode2Variablen und Datentypen
Zahlen und VariablenDatentyp StringDatentyp BooleanDatentyp SymbolDatentypen prüfenBenennungskonventionenZusammenfassung – Erstellung von Variablen5Entscheidungsfindung
If-AnweisungIf - ElseWiederholung - Einfacher TaschenrechnerVerschachtelte If - Else-AnweisungenUnless-Anweisung8Schleifen
For-Schleife mit RangesWhile-SchleifeBreakNextRückblick - FakultätTimes-SchleifeUntil-SchleifeVerschachtelte SchleifenRückblick - Dynamische Eingabe3Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorArithmetische AbkürzungenWiederholung – Einfache MathematikVergleichsoperatoren6Grundlagen Ein- und Ausgabe
Ausgabe mit putsAusgabe mit print und pAusgabe mit VariablenEingabe mit getsChomp-MethodeTypumwandlungWiederholung - AltersrechnerWiederholung - Wahr oder Falsch