在Python中将值附加到集合中

l--*_*''' 334 python append set

我有这样的一套:

keep = set(generic_drugs_mapping[drug] for drug in drug_input)
Run Code Online (Sandbox Code Playgroud)

如何[0,1,2,3,4,5,6,7,8,9,10]在此集合中添加值?

Ale*_*lli 372

keep.update(yoursequenceofvalues)
Run Code Online (Sandbox Code Playgroud)

例如,keep.update(xrange(11))对于您的具体示例.或者,如果由于某些其他原因必须在循环中生成值,

for ...whatever...:
  onemorevalue = ...whatever...
  keep.add(onemorevalue)
Run Code Online (Sandbox Code Playgroud)

但是,当然.update,在其他方面可行的情况下,通过一次通话进行批量处理更快更方便.

  • `.add`添加了一个项目,`.update`添加了几个项目.那是对的吗? (61认同)
  • @ThorSummoner是的,`.add`需要一个可哈希类型,而`.update`需要一个可迭代对象 (12认同)
  • 如果添加带有更新的字符串,它将在字符串中为每个字符添加一个项目,因为它是可迭代的! (3认同)
  • `add` 和 `update` 改变了 set 对象,可以调用 `{*a, *b}` 返回一个新的 set 对象 (3认同)
  • 重要的是要注意作为"整个"对象的字符串应该添加`.add`,而不是`.update`,我最近因为这个小细节而面临着一个偷偷摸摸的漏洞. (2认同)

Ran*_*PhD 250

定义集

a = set()
Run Code Online (Sandbox Code Playgroud)

使用add追加单个值

a.add(1)
a.add(2)
Run Code Online (Sandbox Code Playgroud)

使用update附加可迭代值

a.update([3,4])
Run Code Online (Sandbox Code Playgroud)

检查你的收藏

a
Out[*n*]: {1, 2, 3, 4}
Run Code Online (Sandbox Code Playgroud)

这就是它-记住,更新,如果它是迭代(又名列表或元组)或添加,如果没有.快乐的编码!


nyu*_*a7h 98

您还可以使用|运算符连接两个集合(集合理论中的集):

>>> my_set = {1}
>>> my_set = my_set | {2}
>>> my_set
{1, 2}
Run Code Online (Sandbox Code Playgroud)

或使用|=以下简短形式:

>>> my_set = {1}
>>> my_set |= {2}
>>> my_set
{1, 2}
Run Code Online (Sandbox Code Playgroud)

注意:在Python 2.7之前的版本中,请使用set([...])而不是{...}.

  • 如果您有一个集合“my_sets”列表,那么您可以执行“big_set = my_sets[0].union(*my_sets[1:])”将它们全部组合起来 (2认同)

sbe*_*rry 41

使用update这样:

keep.update(newvalues)
Run Code Online (Sandbox Code Playgroud)


lal*_*ost 8

这个问题是当人们查找"Python如何添加要设置的元素"时出现在Google上的第一个问题,因此值得注意的是,如果要将整个字符串添加到集合中,则应该添加.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'}.

  • 赞成,以澄清整个情况。 (2认同)