Retour aux quiz
Débutant

Piège des arguments mutables par défaut (3)

Que se passe-t-il à l'exécution ?

quiz.py
1
s = set()
2
s.add([1, 2, 3])
3
print(s)

Réponses possibles

A{[1, 2, 3]}
BAttributeError
CTypeError
Dset([1, 2, 3])

Explication

Les sets en Python ne contiennent que des éléments immuables (qu'on ne peut pas modifier). Les listes sont mutables, donc essayer d'ajouter une liste à un set lève une erreur "TypeError: unhashable type: 'list'". Dans ce cas, on aurait par exemple pu ajouter un tuple plutôt qu'une liste, comme les tuples sont immuables.