【发布时间】:2019-08-03 08:57:09
【问题描述】:
如果你拿代码:
import os
directory = [files for root, dirs, files in os.walk(".")]
imgs = [file[0] for file in [[directory[x][y] for y,file in enumerate(dirs) if file.split('.')[1] == "png"] for x,dirs in enumerate(directory)] if len(file) != 0]
这是四个 for 循环查找目录中的所有 .png 文件并根据结果创建列表。我的问题是:严格按照代码的效率,这会比以下效率更高还是更低:
import os
imgs = []
directory = []
for root,dirs,file in os.walk("."):
directory.append(file)
for x,dirs in enumerate(directory):
for y,file in enumerate(dirs):
if file.split('.')[1] == "png":
imgs.append(file)
对不起,如果答案很明显,我以前从未真正考虑过程序的效率。任何解释将不胜感激:)
【问题讨论】:
-
在这种情况下,我会说,想想你未来的自己或可能继承这一点的未来开发者,哪个选项更容易让他们维护和理解?
-
这可能会有所帮助:[](stackoverflow.com/questions/16307326/…
标签: python python-3.x list for-loop