如何向现有集添加值?
当前回答
我喜欢这样做的方法是将原始集合和我想添加到列表中的值同时转换,添加它们,然后将它们转换回集合,就像这样:
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'。
其他回答
你也可以使用|操作符来连接两个集合(集合理论中的并集):
>>> 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([…])而不是{…}。
当你在谷歌上查找“Python如何向set中添加元素”时,这个问题是第一个出现的问题,所以值得明确指出的是,如果你想向set中添加整个字符串,它应该使用.add()而不是.update()添加。
假设你有一个字符串foo_str,它的内容是'this is a sentence',你有一些set bar_set = set()。
如果有的话 bar_set.update (foo_str),设置的内容将{' t ', ' ', ' ', ' e ', ' s ', ' n ', ' h ', ' c ',‘我’}。
如果你执行bar_set.add(foo_str),你的集合的内容将是{'这是一个句子'}。
我喜欢这样做的方法是将原始集合和我想添加到列表中的值同时转换,添加它们,然后将它们转换回集合,就像这样:
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'。
我只是想在这里补充一点。所以我在三种方法中寻找最快的方法。
使用set.add()函数 使用set.update()函数 使用"|"操作符函数。
我发现,要将单个值或多个值添加到一个集合中,必须使用set.add()函数。这是其他方法中最有效的方法。
所以我做了个测试,结果如下:
set.add() Took: 0.5208224999951199 set.update (): 0.6461397000239231” “|”操作符’Took: 0.7649438999942504
PS:如果你想知道更多的分析。
在这里检查:将值追加到set的最快方法。
keep.update((0,1,2,3,4,5,6,7,8,9,10))
Or
keep.update(np.arange(11))
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if
- 如何在Python中获得所有直接子目录