我知道这一定是非常基本的东西,但是我不知道为什么我会一直空着。为了不弄空集,我该怎么办?
s=set()
for a in [(1,2),(1,3),(1,2)]:
b=[]
for j in range(len(a)-1):
b.append(a)
s.union(b)
print(s)
我得到:
s=([])
但是我想要的结果是
{(1,2),(1,3)}
我知道还有另一种采用联合的方式,但是我希望使用此for循环来实现。
答案 0 :(得分:3)
尝试一下:
s = set()
s = s.union([(1,2),(1,3),(1,2)])
set.union不会修改集合,因此您需要保存结果
如果您要像在帖子中那样使用for循环,请确保保存并集的结果:s = s.union(b)
答案 1 :(得分:2)
函数union
返回一个集合,该集合是s
与b
的并集,您应该将代码更改为:
s = set()
for a in [(1, 2), (1, 3), (1, 2)]:
b = []
for j in range(len(a) - 1):
b.append(a)
s = s.union(b)
print(s)
输出
{(1, 2), (1, 3)}
您也可以使用update
函数:
s.update(b)
输出
{(1, 2), (1, 3)}
答案 2 :(得分:0)
如果要合并两个非空集,则仅需要union
方法。由于您从一个空集开始,因此可以简单地使用set
构造函数:
s = set([(1,2),(1,3),(1,2)])
和s
将变为:
{(1, 2), (1, 3)}