43 votes

Ajouter un numéro à l'ensemble

Qu'est-ce que je fais de mal ici ?

a = set().add(1)
print a # Prints `None`

J'essaie d'ajouter le nombre 1 à l'ensemble vide.

2voto

Lattyware Points 37257

Vous attribuez la valeur retournée par set().add(1) à a. Cette valeur est None comme add() ne renvoie pas de valeur, mais agit en lieu et place sur la liste.

Ce que vous vouliez faire, c'était ça :

a = set()
a.add(1)
print(a)

Bien sûr, cet exemple est trivial, mais Python prend en charge les littéraux d'ensembles, donc si vous voulez vraiment le faire, c'est mieux :

a = {1}
print(a)

Les accolades indiquent un ensemble (mais attention, {} dénote un dict vide, et non un ensemble vide, car les crochets sont utilisés à la fois pour les dicts et les ensembles (les dicts sont séparés par l'utilisation des deux points pour séparer les clés et les valeurs).

2voto

Antoni Points 192

Alternativement à un = set() | {1} considérer l'opérateur "in-place" :

a = set()
a |= {1}

2voto

Óscar López Points 97105

Vous devriez le faire :

a = set()
a.add(1)
print a

Remarquez que vous assignez à a le résultat de en ajoutant 1 et le add telle qu'elle est définie dans Python, retourne None - et c'est ce qui est assigné à a dans votre code.

Vous pouvez également procéder ainsi pour initialiser un ensemble :

a = set([1, 2, 3])

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X