python列表从for循环到一个列表

Chu*_*cks 2 python for-loop list

for循环中的Python列表,如何在一个列表中包含所有内容

import os
dir="/tmp/logvol/logs/fil/sap/archive/"
n=os.listdir(dir)
#print n

for x in n:
 #print x
 l = [];
 l.append(os.path.join(dir,x))
 print l
Run Code Online (Sandbox Code Playgroud)

输出:

['/tmp/logvol/logs/fil/sap/archive/m.log']
['/tmp/logvol/logs/fil/sap/archive/k.log']
['/tmp/logvol/logs/fil/sap/archive/j.log']
['/tmp/logvol/logs/fil/sap/archive/p.log']
Run Code Online (Sandbox Code Playgroud)

我需要一个列表,而不是多个列表.

['/tmp/logvol/logs/fil/sap/archive/m.log', '/tmp/logvol/logs/fil/sap/archive/k.log', '/tmp/logvol/logs/fil/sap/archive/j.log', '/tmp/logvol/logs/fil/sap/archive/p.log']
Run Code Online (Sandbox Code Playgroud)

Jef*_*eff 9

另一种方法是使用列表理解.

l = [os.path.join(dir,x) for x in n]
Run Code Online (Sandbox Code Playgroud)


mdm*_*dml 5

您需要l在循环外移动列表声明:

l = []
for x in n:
 #print x
 l.append(os.path.join(dir,x))
Run Code Online (Sandbox Code Playgroud)

此外,您不需要Python中的分号.