簡體   English   中英

python列表從for循環到一個列表

[英]python list from for loop into one 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

輸出:

['/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']

我需要一個列表,而不是多個列表。

['/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']

另一種方法是使用列表理解。

l = [os.path.join(dir,x) for x in n]

您需要在循環外移動列表l聲明:

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

此外,您不需要Python中的分號。

您在for循環的每次迭代中重新創建l列表

for x in n:
    #print x
    l = []; # here You recreate list every iteration
    l.append(os.path.join(dir,x))
    print l

for循環之前避免這個實例化列表

l = []; # here You recreate list every iteration
for x in n:
    l.append(os.path.join(dir,x))
print l

並為變量選擇其他名稱,而不是l因為http://www.python.org/dev/peps/pep-0008/#names-to-avoid

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM