Menu
Coddy logo textTech

Modifier des listes

Fait partie de la section Fondamentaux du Journey R de Coddy. Leçon 73 sur 78.

Maintenant que vous savez comment créer des listes et accéder à leurs éléments, apprenons comment les modifier. Vous pouvez modifier des éléments existants, en ajouter de nouveaux ou supprimer entièrement des éléments.

Pour modifier un élément existant, utilisez des doubles crochets avec l'affectation :

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

Sortie :

[[1]]
[1] 10

[[2]]
[1] "world"

[[3]]
[1] TRUE

Pour ajouter un nouvel élément, il suffit de l'assigner à un index qui n'existe pas encore :

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

Sortie :

[[1]]
[1] 10

[[2]]
[1] "hello"

[[3]]
[1] FALSE

Pour supprimer un élément, affectez-lui NULL :

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

Sortie :

[[1]]
[1] 10

[[2]]
[1] TRUE

Remarquez qu'après avoir supprimé le deuxième élément, les éléments restants se décalent pour combler le vide. L'élément qui était à la position 3 est maintenant à la position 2.

challenge icon

Défi

Facile

Vous recevrez trois lignes d’entrée :

  1. Trois valeurs séparées par des virgules pour initialiser une liste (par exemple, 50,hello,TRUE)
  2. Un indice et une nouvelle valeur séparés par une virgule pour la modification (par exemple, 2,goodbye)
  3. L’indice de l’élément à supprimer (par exemple, 3)

Effectuez les opérations suivantes :

  1. Créez une liste avec les trois valeurs initiales (convertissez-les vers les types appropriés : numérique, caractère, logique)
  2. Affichez la liste originale
  3. Modifiez l’élément à l’indice indiqué avec la nouvelle valeur (conservez-le sous forme de chaîne de caractères)
  4. Affichez la liste après la modification
  5. Ajoutez un nouvel élément à la liste, en quatrième position, avec la valeur 999
  6. Affichez la liste après l’ajout du nouvel élément
  7. Supprimez l’élément à l’indice indiqué (provenant de la troisième entrée)
  8. Affichez la liste finale

Par exemple, si les entrées sont :

100,world,FALSE
1,updated
2

La sortie doit être :

[[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

Explication :

  • Liste originale : 100, "world", FALSE
  • Après la modification de l’indice 1 : "updated", "world", FALSE
  • Après l’ajout du quatrième élément : "updated", "world", FALSE, 999
  • Après la suppression de l’indice 2 : "updated", FALSE, 999 (les éléments restants se décalent)

N’oubliez pas d’utiliser les doubles crochets [[ ]] pour les modifications et d’affecter NULL pour supprimer des éléments.

Essayez vous-même

# Lire l'entrée
con <- file("stdin", "r")
initial_values <- suppressWarnings(readLines(con, n = 1))  # Trois valeurs séparées par des virgules
modify_input <- suppressWarnings(readLines(con, n = 1))    # Index et nouvelle valeur
remove_index <- suppressWarnings(readLines(con, n = 1))    # Index à supprimer
close(con)

# Analyser les valeurs initiales
values <- strsplit(initial_values, ",")[[1]]
val1 <- as.numeric(values[1])
val2 <- values[2]
val3 <- as.logical(values[3])

# Analyser l'entrée de modification
mod_parts <- strsplit(modify_input, ",")[[1]]
mod_index <- as.numeric(mod_parts[1])
mod_value <- mod_parts[2]

# Analyser l'index de suppression
rem_index <- as.numeric(remove_index)

# TODO: Écrivez votre code ci-dessous
# 1. Créer une liste avec les trois valeurs initiales (val1, val2, val3)
# 2. Afficher la liste originale
# 3. Modifier l'élément à mod_index avec mod_value
# 4. Afficher la liste après modification
# 5. Ajouter un nouvel quatrième élément avec la valeur 999
# 6. Afficher la liste après l'ajout
# 7. Supprimer l'élément à rem_index (utiliser NULL)
# 8. Afficher la liste finale
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux

Entraînez-vous par vous-même : Compilateur R en ligne