2010-08-02 6 views

Répondre

226
keep.update(yoursequenceofvalues) 

par exemple, keep.update(xrange(11)) pour votre exemple spécifique. Ou, si vous avez pour produire les valeurs dans une boucle pour une autre raison,

for ...whatever...: 
    onemorevalue = ...whatever... 
    keep.add(onemorevalue) 

Mais, bien sûr, le faire en vrac avec un seul appel .update est plus rapide et plus pratique, quand par ailleurs possible.

+15

'.add' ajoute un seul élément,' .update' ajoute plusieurs éléments. Est-ce exact? – ThorSummoner

+3

@ThorSummoner Oui, '.add' s'attend à un type unique, alors que' .update' attend un objet itérable – Bonnie

+0

Si vous ajoutez une chaîne avec update, elle ajoutera un élément par caractère dans votre chaîne parce que c'est une itérable! – hgolov

32

Utilisez update comme ceci:

keep.update(newvalues) 
63

Vous pouvez également utiliser l'opérateur | pour concaténer deux ensembles (union dans la théorie des ensembles):

>>> my_set = {1} 
>>> my_set = my_set | {2} 
>>> my_set 
{1, 2} 

Ou une forme plus courte en utilisant |=:

>>> my_set |= {2} 
>>> my_set 
{1, 2} 

Remarque: Dans les versions antérieures à Python 2.7, utilisez set([...]) au lieu de {...}.

+0

Si vous avez une liste d'ensembles 'my_sets', alors vous pouvez faire' big_set = my_sets [0] .union (* mes_sets [1:]) 'pour les combiner tous – zelusp

133

définir un ensemble

a = set() 

Utilisez ajouter pour ajouter des valeurs uniques

a.add(1) 
a.add(2) 

Utilisez la mise à jour pour ajouter des valeurs itérables

a.update([3,4]) 

Vérifiez votre collection

a 
Out[*n*]: {1, 2, 3, 4} 

C'est tout - rappelez-vous, mise à jour si elle est itérable (aka liste ou tuple) ou ajouter sinon. Codage heureux!

Questions connexes