追加函数无法退出循环



我想附加文件,但Jupiter笔记本只是简单地说文件正在运行,但没有给出错误代码,也从未给出输出。当我试图停止笔记本时,它就崩溃了。这是我的笔记本有问题还是功能有问题?

我已经在非常简单的代码上尝试了我的代码,比如:

x = [1, 2, 3, 4, 5]
for i in x:
x.append(i)
print(x)

但是从未给出输出。

这是我的实际代码:

jpgfiles = [f for f in glob.glob(path + "**/*.jpg", recursive=True)]
pngfiles = [f for f in glob.glob(path + "**/*.png", recursive=True)]
for j in jpgfiles:
jpgfiles.append(j)
#print(jpgfiles)
for p in pngfiles:
pngfiles.append(p)
#print(pngfiles)
all_files = jpg.files + png.files
#print(all_files)

我之所以怀疑这是否是一个代码问题,是因为我不知道我是否将文件困在了某个无限循环中?需要注意的是,真正复杂的代码的其他部分仍然有效!只是当我谈到这个函数时,它从未停止运行。。。

您可以像这样合并两个列表:

jpgfiles = [f for f in glob.glob(path + "**/*.jpg", recursive=True)]
pngfiles = [f for f in glob.glob(path + "**/*.png", recursive=True)]
all_files = [*jpgfiles, *pngfiles]
print(all_files)

如果要添加

print(x)

对于for循环,你会看到,你创建了一个无限循环。您正在增加正在处理的数组,同时循环遍历数组本身。这通常是非常糟糕的做法。您应该克隆数组,并将元素从第一个数组添加到第二个数组,同时循环遍历第一个数组。

最新更新