Array Slicing mit Bereichen
Teil des Abschnitts Grundlagen der Ruby-Journey von Coddy — Lektion 69 von 88.
Manchmal müssen Sie einen Teil eines Arrays extrahieren, anstatt auf einzelne Elemente zuzugreifen. Ruby ermöglicht es Ihnen, Arrays mithilfe von Ranges zu slicen, wodurch ein neues Array erstellt wird, das nur die von Ihnen angegebenen Elemente enthält.
Um ein Array mit einem Bereich zu zerteilen, setzen Sie den Bereich in eckige Klammern:
numbers = [10, 20, 30, 40, 50]
slice = numbers[1..3]
puts slice # Ausgabe: 20, 30, 40Der Bereich 1..3 enthält Elemente an den Indizes 1, 2 und 3. Denken Sie daran, dass Array-Indizes bei 0 beginnen, daher ist Index 1 das zweite Element.
Du kannst auch den Bereich mit drei Punkten (...) verwenden, um den letzten Index auszuschließen:
letters = ["a", "b", "c", "d", "e"]
slice = letters[0...3]
puts slice # Ausgabe: a, b, cHier umfasst 0...3 die Indizes 0, 1 und 2, stoppt jedoch vor Index 3.
Negative Indizes funktionieren auch mit Bereichen. Sie zählen vom Ende des Arrays aus, wobei -1 das letzte Element ist:
colors = ["red", "green", "blue", "yellow"]
slice = colors[1..-1]
puts slice # Ausgabe: green, blue, yellowDies extrahiert alles von Index 1 bis zum letzten Element, was nützlich ist, wenn Sie das erste Element überspringen möchten, ohne die Länge des Arrays zu kennen.
Aufgabe
EinfachLies zwei Eingaben ein:
- Eine einzelne Zeile mit durch Kommas getrennten Ganzzahlen (z. B.
10,20,30,40,50,60,70) - Eine Bereichsangabe im Format
start..endoderstart...end(z. B.2..5oder1...4)
Teile die erste Eingabe in ein Array von Ganzzahlen auf. Verwende dann den Bereich aus der zweiten Eingabe, um das Array zu schneiden (slice), und gib jedes Element des geschnittenen Teils in einer eigenen Zeile aus.
Die Bereichseingabe verwendet entweder zwei Punkte (..), um den Endindex einzuschließen, oder drei Punkte (...), um ihn auszuschließen.
Wenn die Eingaben beispielsweise 10,20,30,40,50,60,70 und 2..5 sind, sollte die Ausgabe wie folgt aussehen:
30
40
50
60Wenn die Eingaben 5,10,15,20,25,30 und 0...3 sind, sollte die Ausgabe wie folgt aussehen:
5
10
15Wenn die Eingaben 100,200,300,400,500 und 1..-1 sind, sollte die Ausgabe wie folgt aussehen:
200
300
400
500Wenn die Eingaben a,b,c,d,e,f und -3..-1 sind, sollte die Ausgabe wie folgt aussehen:
d
e
fSpickzettel
Um einen Teil eines Arrays zu extrahieren, verwenden Sie Bereiche innerhalb eckiger Klammern:
numbers = [10, 20, 30, 40, 50]
slice = numbers[1..3]
# Gibt [20, 30, 40] zurück (Indizes 1, 2 und 3)Verwenden Sie zwei Punkte (..), um den Endindex einzuschließen:
letters = ["a", "b", "c", "d", "e"]
slice = letters[0..2]
# Gibt ["a", "b", "c"] zurück (Indizes 0, 1 und 2)Verwenden Sie drei Punkte (...), um den Endindex auszuschließen:
letters = ["a", "b", "c", "d", "e"]
slice = letters[0...3]
# Gibt ["a", "b", "c"] zurück (Indizes 0, 1 und 2, stoppt vor 3)Negative Indizes zählen vom Ende des Arrays (-1 ist das letzte Element):
colors = ["red", "green", "blue", "yellow"]
slice = colors[1..-1]
# Gibt ["green", "blue", "yellow"] zurück (von Index 1 bis zum letzten Element)Probier es selbst
# Lies die durch Kommas getrennten Werte ein
input_values = gets.chomp
# Lies die Bereichsspezifikation ein
range_spec = gets.chomp
# TODO: Schreibe deinen Code unten
# 1. Teile input_values in ein Array auf
# 2. Analysiere range_spec, um Start, Ende und die Verwendung von .. oder ... zu bestimmen
# 3. Schneide das Array mit dem entsprechenden Bereich aus
# 4. Gib jedes Element des ausgeschnittenen Teils in einer eigenen Zeile ausDiese 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