如何将值列表添加到现有集?
当前回答
希望这能有所帮助:
>>> seta = set('1234')
>>> listb = ['a','b','c']
>>> seta.union(listb)
set(['a', 'c', 'b', '1', '3', '2', '4'])
>>> seta
set(['1', '3', '2', '4'])
>>> seta = seta.union(listb)
>>> seta
set(['a', 'c', 'b', '1', '3', '2', '4'])
其他回答
希望这能有所帮助:
>>> seta = set('1234')
>>> listb = ['a','b','c']
>>> seta.union(listb)
set(['a', 'c', 'b', '1', '3', '2', '4'])
>>> seta
set(['1', '3', '2', '4'])
>>> seta = seta.union(listb)
>>> seta
set(['a', 'c', 'b', '1', '3', '2', '4'])
你想添加一个元组,而不是一个列表:
>>> a=set('abcde')
>>> a
set(['a', 'c', 'b', 'e', 'd'])
>>> l=['f','g']
>>> l
['f', 'g']
>>> t = tuple(l)
>>> t
('f', 'g')
>>> a.add(t)
>>> a
set(['a', 'c', 'b', 'e', 'd', ('f', 'g')])
如果您有一个列表,您可以转换为元组,如上所示。元组是不可变的,所以它可以被添加到集合中。
若要将列表中的元素添加到集合中,请使用update
从https://docs.python.org/2/library/sets.html
s.update(t):返回包含从t中添加的元素的集合s
E.g.
>>> s = set([1, 2])
>>> l = [3, 4]
>>> s.update(l)
>>> s
{1, 2, 3, 4}
如果您想将整个列表作为单个元素添加到集合中,则不能,因为列表是不可哈希的。你可以添加一个元组,例如s.d add(tuple(l))。在使用内置set函数时,请参阅TypeError: unhashable type: 'list'了解更多信息。
集合不能有可变的元素/成员。列表是可变的,不能是集合的成员。
因为集合是可变的,所以你不能拥有集合的集合! 不过你可以买一套冷冻套装。
(同样的“可变性要求”也适用于字典的键。)
其他答案已经给出了代码,我希望这能给你一些启发。 我希望亚历克斯·马特利能给出更多细节。
尝试使用* unpack,如下所示:
>>> a=set('abcde')
>>> a
{'a', 'd', 'e', 'b', 'c'}
>>> l=['f','g']
>>> l
['f', 'g']
>>> {*l, *a}
{'a', 'd', 'e', 'f', 'b', 'g', 'c'}
>>>
非编辑器版本:
a=set('abcde')
l=['f', 'g']
print({*l, *a})
输出:
{'a', 'd', 'e', 'f', 'b', 'g', 'c'}
推荐文章
- 如何在交互式Python中查看整个命令历史?
- 如何显示有两个小数点后的浮点数?
- 如何用OpenCV2.0和Python2.6调整图像大小
- 在每个列表元素上调用int()函数?
- 将Set<T>转换为List<T>的最简洁的方法
- 当使用代码存储库时,如何引用资源的相对路径
- 如何在Flask-SQLAlchemy中按id删除记录
- 在Python中插入列表的第一个位置
- 在javascript中从平面数组构建树数组
- Python Pandas只合并某些列
- 如何在一行中连接两个集而不使用“|”
- 从字符串中移除前缀
- 代码结束时发出警报
- 如何在Python中按字母顺序排序字符串中的字母
- 在matplotlib中将y轴标签添加到次要y轴