J'ai un set comme ça:
keep = set(generic_drugs_mapping[drug] for drug in drug_input)
Comment ajouter les valeurs [0,1,2,3,4,5,6,7,8,9,10]
dans cet ensemble?
keep.update(yoursequenceofvalues)
par exemple, keep.update(xrange(11))
pour votre exemple spécifique. Ou, si vous devez 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 bloc avec un seul appel .update
est plus rapide et plus pratique, lorsque cela est possible.
Définir l'ensemble
a = set()
Utilisez add pour ajouter des valeurs uniques
a.add(1)
a.add(2)
Utilisez update pour ajouter des valeurs itérables
a.update([3,4])
Vérifiez votre collection
a
Out[*n*]: {1, 2, 3, 4}
C'est ça - rappelez-vous, update si c'est itérable (liste ou tuple) ou add sinon. Bonne codage!
Vous pouvez également utiliser l'opérateur |
pour concaténer deux ensembles ( union in in set theory):
>>> my_set = {1}
>>> my_set = my_set | {2}
>>> my_set
{1, 2}
Ou un formulaire plus court utilisant |=
:
>>> my_set = {1}
>>> my_set |= {2}
>>> my_set
{1, 2}
Remarque: Dans les versions antérieures à Python 2.7, utilisez set([...])
au lieu de {...}
.
Utilisez update
comme ceci:
keep.update(newvalues)
Cette question est la première qui apparaît sur Google lorsque vous recherchez "Python comment ajouter des éléments à définir", il est donc intéressant de noter que, si vous souhaitez ajouter une chaîne entière à un ensemble, il convient de l'ajouter avec .add()
, pas .update()
.
Supposons que vous ayez une chaîne foo_str
dont le contenu est 'this is a sentence'
et que vous ayez un ensemble bar_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 faites bar_set.add(foo_str)
, le contenu de votre ensemble sera {'this is a sentence'}
.
keep.update((0,1,2,3,4,5,6,7,8,9,10))
Ou
keep.update(np.arange(11))
Pour moi, en Python 3, cela fonctionne simplement de la manière suivante:
keep = keep.union((0,1,2,3,4,5,6,7,8,9,10))
Je ne sais pas si c'est peut-être correct ...
J'aime utiliser cette méthode pour convertir l'ensemble d'origine et les valeurs que je souhaite ajouter aux listes, les ajouter, puis les reconvertir en un ensemble, comme ceci:
setMenu = {"Eggs", "Bacon"}
print(setMenu)
> {'Bacon', 'Eggs'}
setMenu = set(list(setMenu) + list({"Spam"}))
print(setMenu)
> {'Bacon', 'Spam', 'Eggs'}
setAdditions = {"Lobster", "Sausage"}
setMenu = set(list(setMenu) + list(setAdditions))
print(setMenu)
> {'Lobster', 'Spam', 'Eggs', 'Sausage', 'Bacon'}
De cette façon, je peux aussi facilement ajouter plusieurs ensembles en utilisant la même logique, ce qui me donne un TypeError: unhashable type: 'set'
si j'essaie de le faire avec la méthode .update()
.