J'ai un ensemble comme celui-ci:
keep = set(generic_drugs_mapping[drug] for drug in drug_input)
Comment ajouter des valeurs [0,1,2,3,4,5,6,7,8,9,10]
à cet ensemble?
keep.update(yoursequenceofvalues)
par exemple, keep.update(xrange(11))
pour votre exemple spécifique. Ou, si vous devez produire les valeurs dans une boucle pour une autre raison,
for ...whatever...:
onemorevalue = ...whatever...
keep.add(onemorevalue)
Mais, bien sûr, le faire en masse avec un seul .update
appel est plus rapide et plus pratique, lorsque cela est possible.
.add
ajoute un seul élément,.update
ajoute plusieurs éléments. Est-ce exact?.add
attend un seul type lavable, tout en.update
attend un objet itérable.add
, non.update
, j'ai récemment fait face à un bug assez sournois à cause de ce petit détail.Définir l'ensemble
Utilisez ajouter pour ajouter des valeurs uniques
Utilisez la mise à jour pour ajouter des éléments à partir de tuples, d'ensembles, de listes ou d'ensembles figés
Si vous souhaitez ajouter un tuple ou un ensemble figé, utilisez add
Remarque: Étant donné que les éléments d'ensemble doivent être lavables et que les listes sont considérées comme modifiables, vous ne pouvez pas ajouter de liste à un ensemble. Vous ne pouvez pas non plus ajouter d'autres ensembles à un ensemble. Vous pouvez cependant ajouter les éléments des listes et des ensembles comme illustré avec la méthode ".update".
la source
Vous pouvez également utiliser l'
|
opérateur pour concaténer deux ensembles ( union dans la théorie des ensembles):Ou un formulaire plus court utilisant
|=
:Remarque: dans les versions antérieures à Python 2.7, utilisez
set([...])
plutôt que{...}
.la source
my_sets
, alors vous pouvez lesbig_set = my_sets[0].union(*my_sets[1:])
combiner tousUtilisez
update
comme ceci:la source
Cette question est la première qui apparaît sur Google lorsque l'on recherche "Python comment ajouter des éléments à un ensemble", il convient donc de noter explicitement que si vous souhaitez ajouter une chaîne entière à un ensemble, elle doit être ajoutée avec
.add()
, non.update()
.Disons que vous avez une chaîne
foo_str
dont le contenu est'this is a sentence'
, et que vous en avez un ensemblebar_set
égal àset()
.Si vous le faites
bar_set.update(foo_str)
, le contenu de votre ensemble sera{'t', 'a', ' ', 'e', 's', 'n', 'h', 'c', 'i'}
.Si vous le faites
bar_set.add(foo_str)
, le contenu de votre ensemble sera{'this is a sentence'}
.la source
La façon dont j'aime faire cela est de convertir à la fois l'ensemble d'origine et les valeurs que j'aimerais ajouter dans des listes, de les ajouter, puis de les reconvertir en un ensemble, comme ceci:
De cette façon, je peux également ajouter facilement plusieurs ensembles en utilisant la même logique, ce qui m'obtient
TypeError: unhashable type: 'set'
si j'essaie de le faire avec la.update()
méthode.la source
Ou
la source
Pour moi, en Python 3, cela fonctionne simplement de cette façon:
Je ne sais pas si c'est peut-être correct ...
la source