我在使用for循环时得到空集
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我在使用for循环时得到空集相关的知识,希望对你有一定的参考价值。
我知道这一定是非常基本的东西,但我不知道为什么我会一直空着。我该怎么办才能得到空集?
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循环来做。
答案
试试这个:
s = set()
s = s.union([(1,2),(1,3),(1,2)])
set.union不会修改集合,因此您需要保存结果
如果你想使用for-loop,就像你在帖子中所做的那样,那么一定要保存union的结果:s = s.union(b)
另一答案
函数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)}
另一答案
如果要合并两个非空集,则只需要union
方法。由于您从一个空集开始,您可以简单地使用set
构造函数:
s = set([(1,2),(1,3),(1,2)])
和s
将成为:
{(1, 2), (1, 3)}
以上是关于我在使用for循环时得到空集的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 这个简单的代码片段显示了如何使用有符号整数在C中完成插值。 for()循环确定要插入的范围