QCM : Manipulation des listes en Python (17 questions)

Questions et réponses du QCM

1. Une liste Python contient les valeurs `12`, `"bleu"` et `[3, 4]`. Quelle propriété des listes cette situation illustre-t-elle ?

Elle peut réunir des valeurs de types différents et contenir une autre liste.
Elle doit réunir des valeurs d’un même type, mais peut contenir une autre liste.
Elle peut réunir des valeurs de types différents, mais pas contenir une autre liste.
Elle contient plusieurs valeurs, mais chacune doit être stockée dans une variable distincte.

Elle peut réunir des valeurs de types différents et contenir une autre liste.

Explication

Une liste peut contenir plusieurs valeurs de types différents et même une autre liste. L’homogénéité des types et l’interdiction des listes imbriquées sont des confusions sur ces possibilités, tandis que l’idée de variables distinctes confond les éléments d’une liste avec des variables séparées.

2. Après `noms = ["Léa"]`, quelle instruction ajoute le nombre `7` à la fin de la liste ?

`noms[0] = 7`
`noms.append("7")`
`noms.insert(0, 7)`
`noms.append(7)`

`noms.append(7)`

Explication

La méthode `append` ajoute sa valeur à la fin de la liste et accepte un type différent de ceux déjà présents. `noms[0] = 7` remplace l’élément existant, `insert(0, 7)` insère au début, et `"7"` ajoute une chaîne plutôt que le nombre demandé.

3. Avec `couleurs = ["rouge", "vert", "bleu"]`, quelle instruction remplace le troisième élément par `"or"` ?

`couleurs[1] = "or"`
`couleurs[3] = "or"`
`couleurs[2] = "or"`
`couleurs.append("or")`

`couleurs[2] = "or"`

Explication

L’affectation à `couleurs[2]` remplace la valeur située à l’index 2, qui est le troisième élément puisque l’indexation commence à zéro. L’index 3 ne désigne pas le troisième élément, l’index 1 vise le deuxième, et `append` ajoute une valeur au lieu d’en remplacer une.

4. Pour `fruits = ["pomme", "poire", "pomme"]`, quelle instruction supprime l’élément situé à l’index 1 ?

`del fruits[1]`
`del fruits[0]`
`fruits.remove("pomme")`
`fruits.count("poire")`

`del fruits[1]`

Explication

`del fruits[1]` supprime l’élément désigné par son index, ici `"poire"`. `remove("pomme")` désigne une valeur, `del fruits[0]` cible le premier élément, et `count` compte les occurrences au lieu de supprimer.

5. Dans `outils = ["marteau", "scie", "marteau"]`, quelle instruction demande la suppression d’un élément en désignant sa valeur `"scie"` ?

`outils.index("scie")`
`outils.remove("scie")`
`del outils[1]`
`outils.remove("marteau")`

`outils.remove("scie")`

Explication

La méthode `remove("scie")` désigne l’élément à supprimer par sa valeur. `del outils[1]` le désigne par son index, `remove("marteau")` vise une autre valeur, et `index` recherche une position sans supprimer d’élément.

6. Une liste `mesures` contient les valeurs `[4, 9, 2, 6]`. Quel appel renvoie le nombre d’éléments qu’elle contient ?

`mesures.index(6)`
`mesures.count(4)`
`len(mesures)`
`mesures[3]`

`len(mesures)`

Explication

`len(mesures)` renvoie le nombre d’éléments de la liste, soit 4. `count(4)` compte les occurrences de 4, `index(6)` renvoie la position de 6, et `mesures[3]` donne la valeur située au dernier index.

7. Dans une liste Python `couleurs = ["rouge", "vert", "bleu"]`, quel élément désigne `couleurs[1]` ?

"rouge"
la liste entière
"bleu"
"vert"

"vert"

Explication

Les indices commencent à 0 : l’indice 0 désigne « rouge » et l’indice 1 désigne donc « vert ». « Rouge » correspond à l’indice 0, tandis que « bleu » correspond à l’indice 2.

8. Pour `nombres = [8, 3, 6, 1, 9]`, quel résultat produit `nombres[-3:]` ?

[6, 1, 9]
[8, 3, 6]
[6]
[3, 6, 1, 9]

[6, 1, 9]

Explication

La tranche `[-3:]` sélectionne les trois derniers éléments de la liste, soit `[6, 1, 9]`. `[6]` traite l’index comme un accès à un seul élément, et les autres résultats sélectionnent une tranche située au mauvais endroit ou de la mauvaise longueur.

9. Une liste `scores = [12, 15, 9]` est parcourue avec `for score in scores:`. Que représente `score` à chaque passage dans la boucle ?

L’indice de l’élément traité
La liste complète des scores
Un tuple associant l’indice et la valeur
L’élément traité lors de ce passage

L’élément traité lors de ce passage

Explication

Une boucle `for score in scores` parcourt les éléments et affecte à `score` la valeur traitée à chaque passage. L’index n’est pas fourni par cette forme de boucle, et un tuple index-valeur est obtenu avec `enumerate`.

10. En parcourant `lettres = ["x", "y"]` avec `enumerate(lettres)`, quel tuple est fourni pour le deuxième élément ?

(2, "y")
(1, "y")
("y", 1)
(0, "y")

(1, "y")

Explication

`enumerate` fournit un tuple contenant d’abord l’index, puis la valeur; le deuxième élément a l’index 1 puisque l’indexation commence à 0. `(2, "y")` commence l’indexation à 1, tandis que les autres réponses inversent l’ordre ou attribuent le mauvais index.

11. Après l’affectation `y = x`, où `x` vaut `[2, 5]`, une instruction remplace `y[0]` par `8`. Quelle est alors la valeur de `x` ?

`[2, 5]`
`[8, 5]`
`[8, 2, 5]`
`[2, 5, 8]`

`[8, 5]`

Explication

Avec `y = x`, les deux noms désignent la même liste : modifier un élément par `y` modifie donc aussi `x`. La réponse `[2, 5]` suppose une copie indépendante, tandis que les deux listes avec un élément ajouté confondent remplacement et ajout.

12. Une fonction reçoit une liste `x` et doit pouvoir modifier son propre exemplaire sans altérer `x`. Quelle affectation convient pour créer cet exemplaire ?

`y = ":".join(x)`
`y = x`
`y = []`
`y = x[:]`

`y = x[:]`

Explication

La tranche `x[:]` crée une copie de la liste, que l’on peut modifier sans modifier la liste originale. `y = x` partage la même liste, `join` produit une chaîne et `y = []` ne reprend pas le contenu de `x`.

13. On veut découper la chaîne `"lune|mars|soleil"` aux barres verticales pour obtenir une liste de mots. Quelle expression faut-il utiliser ?

`"|".join(["lune", "mars", "soleil"])`
`"lune|mars|soleil".join("|")`
`"lune|mars|soleil".split("|")`
`"mars" in "lune|mars|soleil"`

`"lune|mars|soleil".split("|")`

Explication

`split("|")` découpe une chaîne aux occurrences du séparateur et renvoie une liste. `join` assemble des éléments de liste en chaîne, l’expression avec `join` sur la chaîne inverse donc l’opération visée, et `in` teste une présence.

14. Les éléments `"bleu"`, `"vert"` et `"rouge"` doivent être assemblés en une chaîne séparée par des points-virgules. Quelle expression réalise cette opération ?

`["bleu", "vert", "rouge"].split(";")`
`";".join(["bleu", "vert", "rouge"])`
`",".join(["bleu", "vert", "rouge"])`
`"vert" in ["bleu", "vert", "rouge"]`

`";".join(["bleu", "vert", "rouge"])`

Explication

La méthode `join` appelée sur le séparateur insère celui-ci entre les éléments de la liste et produit une chaîne. `split` effectue la transformation inverse, la virgule ne respecte pas le séparateur demandé, et `in` vérifie une présence.

15. Une liste vaut `[4, 7, 9]`. Quel résultat renvoie l’expression `6 in liste` ?

`1`
`True`
`None`
`False`

`False`

Explication

L’opérateur `in` renvoie `True` si la valeur est présente dans la liste et `False` sinon ; ici, `6` est absent. `True` correspondrait à une valeur présente, `1` confond le test avec un index, et `None` n’est pas le résultat booléen attendu.

16. On exécute `x = [2, 4]`, `y = [7, 9]`, puis `x.extend(y)`. Quel est le contenu de `x` après ces instructions ?

[2, 4]
[7, 9]
[2, 4, [7, 9]]
[2, 4, 7, 9]

[2, 4, 7, 9]

Explication

La méthode `extend` ajoute à la fin de `x` chacun des éléments de `y`. La réponse `[2, 4]` oublie la modification, `[2, 4, [7, 9]]` traite `y` comme un seul élément et `[7, 9]` confond ajout et remplacement.

17. Une personne veut obtenir tous les ordres possibles des trois éléments distincts `a`, `b` et `c`. Quel outil répond à ce besoin ?

`itertools.permutations`
L’opérateur `+` appliqué à deux listes
`itertools.product`
L’opérateur `*` appliqué à une liste

`itertools.permutations`

Explication

`itertools.permutations` produit les arrangements possibles des éléments fournis. `product` combine des choix provenant de plusieurs listes, tandis que `*` répète une liste et `+` concatène deux listes.

Révisez avec les flashcards

Mémorisez les réponses avec 38 flashcards sur Manipulation des listes en Python.

Que peut contenir une liste en Python ?

Plusieurs valeurs, éventuellement de types différents ou d’autres listes.

Que fait la méthode `append` sur une liste ?

Elle ajoute une valeur à la fin de la liste.

Quel type de valeur `append` peut-il ajouter à une liste ?

Une valeur d’un type différent de celles déjà présentes.

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Manipulation des listes en Python.

Voir la fiche →

Cours similaires

Crée tes propres QCM

Importe ton cours et l'IA génère des QCM avec corrections en 30 secondes.

Générateur de QCM