追加功能无法退出循环

时间:2019-10-24 13:22:36

标签: python for-loop jupyter-notebook append

我想附加文件,但是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)

我想知道这是否是代码问题的原因是因为我不知道我是否将文件陷入了无限循环之类的问题? 应当指出,真正复杂的代码的其他部分仍然可以使用!只是当我使用此功能时,它永远不会停止运行...

2 个答案:

答案 0 :(得分:1)

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

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)

答案 1 :(得分:0)

如果要添加

print(x)

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