【发布时间】:2020-05-21 07:21:29
【问题描述】:
如何摆脱代码中的这些嵌套 for 循环?我曾尝试使用列表理解,但没有设法创造出任何好的东西。谢谢您的帮助!这是我的部分代码:
folders = [i for i in range(1, int(number_of_folders) + 1)]
subfolders = [i for i in range(1, int(number_of_subfolders) + 1)]
files = [i for i in range(1, int(number_of_files) + 1)]
for i in folders:
folderpath = path + "/folder-" + str(i)
for j in subfolders:
subfolderpath = folderpath + "/subfolder-" + str(j)
os.makedirs(subfolderpath)
for k in files:
file_path = subfolderpath + "/files-" + str(j) + '-' + str(k) + ".txt"
open(file_path, "w")
【问题讨论】:
-
我评论说上面的代码相当清晰和高效。我要做的一个更改是使用生成器表达式,例如
folders = (i for i in range(1, int(number_of_folders) + 1)或更好,但只需说for i in range(1, int(number_of_folders) + 1)并完全消除folders变量(主要是为了清晰和简洁)。但是对于number_of_folders的小值,它可能对效率的影响很小。
标签: python for-loop nested nested-loops