如何向现有集添加值?


当前回答

我喜欢这样做的方法是将原始集合和我想添加到列表中的值同时转换,添加它们,然后将它们转换回集合,就像这样:

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

这样,我还可以使用相同的逻辑轻松地添加多个集,如果我尝试使用.update()方法,这将为我提供一个TypeError: unhashable类型:'set'。

其他回答

your_set.update(your_sequence_of_values)

例如,your_set。更新([1,2,3,4])。或者,如果你因为其他原因不得不在循环中生成值,

for value in ...:
    your_set.add(value)

但是,当然,在其他可行的情况下,使用单个.update调用进行批量操作更快更方便。

你也可以使用|操作符来连接两个集合(集合理论中的并集):

>>> 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([…])而不是{…}。

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

Or

keep.update(np.arange(11))

像这样使用更新:

keep.update(newvalues)

我喜欢这样做的方法是将原始集合和我想添加到列表中的值同时转换,添加它们,然后将它们转换回集合,就像这样:

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

这样,我还可以使用相同的逻辑轻松地添加多个集,如果我尝试使用.update()方法,这将为我提供一个TypeError: unhashable类型:'set'。