我在下面这样的代码中有一个部分,其中文件名迭代地提供给循环。我希望不会有两个同名的文件被处理(以避免重复处理),所以我使用了上面的"set“方法。
然而,这似乎并没有像预期的那样工作。我得到一个空的processed_set,逻辑没有按预期执行。
else:
create_folder(filename)
processed_set=set()
if xyz ==1:
if filename not in processed_set:
createdata(name)
processed_set.add(filename)
else:
avoid_double_process(name)发布于 2013-05-08 16:04:59
更多的代码可能会有所帮助。不确定是否是这种情况,但if条件与初始化位置在同一个块中
processed_set = set()因此,基本上,如果xyz != 1,则只剩下一个空集,并且不会向该集添加任何内容。如果设置的循环多次命中第一个else语句,则每次都会清除set的内容。
再说一次,我不太确定你的代码是如何流动的,因为它现在有点晦涩难懂。添加更多的周边代码,人们会更容易帮到你。
https://stackoverflow.com/questions/16434280
复制相似问题