Python集不为空,但pop返回空?

Python集不为空,但pop返回空?,python,set,Python,Set,我看到了多线程的类似问题,但这甚至不是多线程,它只是直接填充一个集合,然后弹出 我打印出了这一组,然后立即尝试打印出这一组的弹出窗口。但是当我看到像这样的东西打印出来的时候,它说这个集合是空的: set(['''asdf','asdf','asdf']) 由于您的集合中有一个空字符串,foo.pop()很可能返回此空字符串,而打印一个空字符串对您没有任何帮助。请提供上下文-否则您的问题在示例中没有意义,您在第二个“asdf”之后忘记了一个“asdf”。当您弹出一个元素时,删除元素并将其返回给调用

我看到了多线程的类似问题,但这甚至不是多线程,它只是直接填充一个集合,然后弹出

我打印出了这一组,然后立即尝试打印出这一组的弹出窗口。但是当我看到像这样的东西打印出来的时候,它说这个集合是空的:

set(['''asdf','asdf','asdf'])


由于您的集合中有一个空字符串,
foo.pop()
很可能返回此空字符串,而打印一个空字符串对您没有任何帮助。

请提供上下文-否则您的问题在示例中没有意义,您在第二个“asdf”之后忘记了一个“asdf”。当您弹出一个元素时,删除元素并将其返回给调用者。如果你弹出所有元素,你的集合将变为空…向我们显示代码和确切的集合。你还应该知道集合不会像列表那样允许重复元素。所以结果集只有两个元素,空字符串和'asdf'。如果“它说集合为空”不是上面提到的关键错误,那么这个问题比我想象的还要糟糕。返回空字符串与“KeyError:“从空集中弹出”有很大不同,您将看到在空集中调用
pop()
pop(...)
    Remove and return an arbitrary set element.
    Raises KeyError if the set is empty.