我在使用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返回一个集合,即sb的联合,您应该将代码更改为:

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循环时得到空集的主要内容,如果未能解决你的问题,请参考以下文章

在 PLPGSQL FOR 循环中检测空集

for循环结构

来自 for 循环的分段错误

c_cpp 这个简单的代码片段显示了如何使用有符号整数在C中完成插值。 for()循环确定要插入的范围

如何使用光标和循环显示来自 sqlite 的片段的 recyclerview

如何使用引导程序和 for 循环在 django 中创建电影片段?