Menu
Coddy logo textTech

Listen modifizieren

Teil des Abschnitts Grundlagen der R-Journey von Coddy — Lektion 73 von 78.

Nachdem Sie nun wissen, wie man Listen erstellt und auf ihre Elemente zugreift, lernen wir nun, wie man sie verändert. Sie können bestehende Elemente ändern, neue hinzufügen oder Elemente vollständig entfernen.

Um ein bestehendes Element zu ändern, verwenden Sie doppelte Klammern mit einer Zuweisung:

my_list <- list(10, "hello", TRUE)
my_list[[2]] <- "world"
print(my_list)

Ausgabe:

[[1]]
[1] 10

[[2]]
[1] "world"

[[3]]
[1] TRUE

Um ein neues Element hinzuzufügen, weisen Sie es einfach einem Index zu, der noch nicht existiert:

my_list <- list(10, "hello")
my_list[[3]] <- FALSE
print(my_list)

Ausgabe:

[[1]]
[1] 10

[[2]]
[1] "hello"

[[3]]
[1] FALSE

Um ein Element zu entfernen, weisen Sie ihm NULL zu:

my_list <- list(10, "hello", TRUE)
my_list[[2]] <- NULL
print(my_list)

Ausgabe:

[[1]]
[1] 10

[[2]]
[1] TRUE

Beachten Sie, dass nach dem Entfernen des zweiten Elements die verbleibenden Elemente nachrücken, um die Lücke zu füllen. Das Element, das sich an Position 3 befand, ist nun an Position 2.

challenge icon

Aufgabe

Einfach

Sie erhalten drei Eingabezeilen:

  1. Drei durch Kommata getrennte Werte zur Initialisierung einer Liste (z. B. 50,hello,TRUE)
  2. Einen Index und einen neuen Wert, getrennt durch ein Komma, für eine Änderung (z. B. 2,goodbye)
  3. Einen Index des zu entfernenden Elements (z. B. 3)

Führen Sie die folgenden Operationen aus:

  1. Erstellen Sie eine Liste mit den drei Anfangswerten (konvertieren Sie diese in die entsprechenden Typen: numeric, character, logical)
  2. Geben Sie die ursprüngliche Liste aus
  3. Ändern Sie das Element am angegebenen Index mit dem neuen Wert (behalten Sie diesen als character string bei)
  4. Geben Sie die Liste nach der Änderung aus
  5. Fügen Sie der Liste ein neues viertes Element mit dem Wert 999 hinzu
  6. Geben Sie die Liste nach dem Hinzufügen des neuen Elements aus
  7. Entfernen Sie das Element am angegebenen Index (aus der dritten Eingabe)
  8. Geben Sie die endgültige Liste aus

Wenn die Eingaben beispielsweise wie folgt lauten:

100,world,FALSE
1,updated
2

Sollte die Ausgabe wie folgt aussehen:

[[1]]
[1] 100

[[2]]
[1] "world"

[[3]]
[1] FALSE

[[1]]
[1] "updated"

[[2]]
[1] "world"

[[3]]
[1] FALSE

[[1]]
[1] "updated"

[[2]]
[1] "world"

[[3]]
[1] FALSE

[[4]]
[1] 999

[[1]]
[1] "updated"

[[2]]
[1] FALSE

[[3]]
[1] 999

Erklärung:

  • Ursprüngliche Liste: 100, "world", FALSE
  • Nach Änderung von Index 1: "updated", "world", FALSE
  • Nach Hinzufügen des vierten Elements: "updated", "world", FALSE, 999
  • Nach Entfernen von Index 2: "updated", FALSE, 999 (die verbleibenden Elemente verschieben sich)

Denken Sie daran, doppelte Klammern [[ ]] für Änderungen zu verwenden und NULL zuzuweisen, um Elemente zu entfernen.

Probier es selbst

# Eingabe lesen
con <- file("stdin", "r")
initial_values <- suppressWarnings(readLines(con, n = 1))  # Drei durch Kommas getrennte Werte
modify_input <- suppressWarnings(readLines(con, n = 1))    # Index und neuer Wert
remove_index <- suppressWarnings(readLines(con, n = 1))    # Zu entfernender Index
close(con)

# Die Anfangswerte parsen
values <- strsplit(initial_values, ",")[[1]]
val1 <- as.numeric(values[1])
val2 <- values[2]
val3 <- as.logical(values[3])

# Modifikationseingabe parsen
mod_parts <- strsplit(modify_input, ",")[[1]]
mod_index <- as.numeric(mod_parts[1])
mod_value <- mod_parts[2]

# Löschindex parsen
rem_index <- as.numeric(remove_index)

# TODO: Schreibe deinen Code unten
# 1. Erstelle eine Liste mit den drei Anfangswerten (val1, val2, val3)
# 2. Gib die ursprüngliche Liste aus
# 3. Ändere das Element bei mod_index mit mod_value
# 4. Gib die Liste nach der Änderung aus
# 5. Füge ein neues viertes Element mit dem Wert 999 hinzu
# 6. Gib die Liste nach dem Hinzufügen aus
# 7. Entferne das Element an der Position rem_index (verwende NULL)
# 8. Gib die finale Liste aus
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen