将for循环中的元素分配给另一个列表

suf*_*ffa 3 python loops for-loop list

我如何通过for循环将元素迭代到一个列表,我可以在以后的代码中将它们打印出来?例如:

 for fname in dirlist:
    if fname.endswith(('.tgz','.tar')):
       print fname
Run Code Online (Sandbox Code Playgroud)

fname仅显示循环中来自dirlist的所有元素.我想在我的代码中查看其他区域的元素.我试过li = fname ...但是只显示了一个元素,实际上大约有7个元素.谢谢!

Sve*_*ach 6

您可以使用列表理解:

tarfiles = [fname for fname in dirlist if fname.endswith(('.tgz','.tar'))]
Run Code Online (Sandbox Code Playgroud)

要打印文件名,请使用

print "\n".join(tarfiles)
Run Code Online (Sandbox Code Playgroud)

要么

for fname in tarfiles:
    print fname
Run Code Online (Sandbox Code Playgroud)