Добавить значения в набор в Python

У меня есть такой набор:

keep = set(generic_drugs_mapping[drug] for drug in drug_input)

Как добавить значения [0,1,2,3,4,5,6,7,8,9,10] в этот набор?

Ответ 1

keep.update(yoursequenceofvalues)

например, keep.update(xrange(11)) для вашего конкретного примера. Или, если вам нужно произвести значения в цикле по какой-то другой причине,

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

Но, конечно же, делать это навалом с помощью одного вызова .update быстрее и удобнее, если это возможно.

Ответ 2

Определить набор

a = set()

Используйте add для добавления отдельных значений

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

Использовать обновление для добавления итеративных значений

a.update([3,4])

Проверьте свою коллекцию

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

Что это - помните, обновите, если он итерируется (aka list или tuple) или добавьте, если нет. Счастливое кодирование!

Ответ 3

Вы также можете использовать | оператор для объединения двух множеств (объединение в теории множеств):

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

Или более короткую форму, используя |=:

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

Примечание. В версиях, предшествующих Python 2.7, используйте set([...]) вместо {...}.

Ответ 4

Используйте update следующим образом:

keep.update(newvalues)

Ответ 5

Этот вопрос является первым, который появляется в Google при поиске "Python, как добавлять элементы в набор", поэтому стоит отметить, что, если вы хотите добавить целую строку в набор, ее следует добавить с помощью .add(), а не .update().

Скажем, у вас есть строка foo_str, содержимое которой 'this is a sentence', и у вас есть некоторый набор bar_set равный set().

Если вы сделаете bar_set.update(foo_str), содержимое вашего набора будет {'t', 'a', ' ', 'e', 's', 'n', 'h', 'c', 'i'}.

Если вы сделаете bar_set.add(foo_str), содержимое вашего набора будет {'this is a sentence'}.

Ответ 6

keep.update((0,1,2,3,4,5,6,7,8,9,10))

Или же

keep.update(np.arange(11))

Ответ 7

Для меня в Python 3 это работает просто так:

keep = keep.union((0,1,2,3,4,5,6,7,8,9,10))

Я не знаю, может ли это быть правильным...

Ответ 8

Мне нравится делать это, чтобы преобразовать исходный набор и значения, которые я хотел бы добавить, в списки, добавить их, а затем преобразовать обратно в набор, например так:

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'}