Menu
Coddy logo textTech

Accéder aux éléments d'une liste

Fait partie de la section Fondamentaux du Journey R de Coddy — leçon 72 sur 78.

Les listes utilisent une syntaxe différente pour accéder aux éléments par rapport aux vecteurs. La différence clé réside entre les crochets simples [ ] et les crochets doubles [[ ]].

Les doubles crochets extraient l'élément réel de la liste :

my_list <- list(42, "hello", TRUE)
print(my_list[[1]])

Sortie :

[1] 42

Les crochets simples renvoient une sous-liste contenant l'élément, et non l'élément lui-même :

my_list <- list(42, "hello", TRUE)
print(my_list[1])

Sortie :

[[1]]
[1] 42

Cette distinction est importante lorsque vous souhaitez travailler avec la valeur réelle. Si un élément de liste est un vecteur, les doubles crochets vous permettent d'y accéder directement, puis d'utiliser l'indexation de vecteur :

my_list <- list(c(10, 20, 30), "text")
print(my_list[[1]][2])

Sortie :

[1] 20

Ici, my_list[[1]] récupère le vecteur, et [2] accède à son deuxième élément. Rappelez-vous : utilisez [[ ]] quand vous avez besoin du contenu réel, et [ ] quand vous voulez une liste plus petite.

challenge icon

Défi

Facile

Vous recevrez deux lignes d'entrée :

  1. Trois valeurs séparées par des virgules de différents types (par exemple, 100,hello,TRUE)
  2. Une liste de nombres séparés par des virgules représentant un vecteur à stocker comme quatrième élément (par exemple, 5,10,15,20)

Effectuez les opérations suivantes :

  1. Créeez une liste avec quatre éléments : la valeur numérique, le texte, la valeur logique et le vecteur de nombres
  2. Utilisez des doubles crochets pour extraire et afficher le deuxième élément (la valeur textuelle)
  3. Utilisez des crochets simples pour extraire le troisième élément et afficher le résultat (remarquez la différence dans le format de sortie)
  4. Accédez au vecteur stocké dans le quatrième élément en utilisant des doubles crochets, puis extrayez et affichez sa troisième valeur en utilisant l'indexation de vecteur
  5. Affichez la somme de tous les nombres du quatrième élément (accédez au vecteur avec des doubles crochets et utilisez sum())

Par exemple, si les entrées sont :

42,world,FALSE
8,16,24,32,40

La sortie devrait être :

[1] "world"
[[1]]
[1] FALSE

[1] 24
[1] 120

Explication :

  • my_list[[2]] extrait la valeur textuelle réelle : "world"
  • my_list[3] renvoie une sous-liste contenant FALSE (notez le [[1]] dans la sortie)
  • my_list[[4]][3] accède au vecteur, puis récupère son troisième élément : 24
  • sum(my_list[[4]]) calcule 8+16+24+32+40 = 120

Aide-mémoire

Les listes utilisent une syntaxe de crochets différente pour accéder aux éléments :

Les doubles crochets [[ ]] extraient l'élément réel :

my_list <- list(42, "hello", TRUE)
print(my_list[[1]])  # Résultat : [1] 42

Les crochets simples [ ] renvoient une sous-liste contenant l'élément :

my_list <- list(42, "hello", TRUE)
print(my_list[1])  # Résultat : [[1]] [1] 42

Accéder à des éléments imbriqués : Utilisez des doubles crochets pour extraire un vecteur d'une liste, puis utilisez l'indexation de vecteur :

my_list <- list(c(10, 20, 30), "text")
print(my_list[[1]][2])  # Résultat : [1] 20

Utilisez [[ ]] lorsque vous avez besoin du contenu réel, et [ ] lorsque vous voulez une liste plus petite.

Essayez vous-même

# Lire l'entrée
con <- file("stdin", "r")
input1 <- suppressWarnings(readLines(con, n = 1))  # Première ligne : trois valeurs séparées par des virgules
input2 <- suppressWarnings(readLines(con, n = 1))  # Deuxième ligne : nombres séparés par des virgules pour le vecteur
close(con)

# Analyser la première ligne d'entrée en valeurs distinctes
values <- strsplit(input1, ",")[[1]]
numeric_val <- as.numeric(values[1])
text_val <- values[2]
logical_val <- as.logical(values[3])

# Analyser la deuxième ligne d'entrée en un vecteur numérique
vector_val <- as.numeric(strsplit(input2, ",")[[1]])

# TODO : Écrivez votre code ci-dessous
# 1. Créer une liste avec quatre éléments : numeric_val, text_val, logical_val et vector_val
# 2. Utiliser des doubles crochets [[ ]] pour extraire et afficher le deuxième élément
# 3. Utiliser des crochets simples [ ] pour extraire le troisième élément et l'afficher
# 4. Accéder au quatrième élément avec des doubles crochets, puis extraire sa troisième valeur
# 5. Afficher la somme de tous les nombres du quatrième élément
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