2014-01-23 58 views
-1
file = open("myfile.txt","w") 
    aList = [["Hello","1","2"],["Hello","3","4"],["Hello","5","6"]] 

    for element in aList: 
     file.writelines("\n".join(element)) 

方式的新生產線弄出來的文本文件:寫列表的列表文件每件

Hello 
1 
2Hello 
3 
4Hello 
5 
6 

他們的方式我想它出來的文本文件:

Hello 
1 
2 
Hello 
3 
4 
Hello 
5 
6 

我在循環中做了什麼錯誤,我該如何解決它?

+0

我敢肯定,你想要'write',而不是'writelines'。 'writelines'可能發生通過遍歷字符串,寫每個字符反正工作,但它旨在用於編寫單獨的行列表。 – user2357112

回答

1

只需添加一個新的生產線每element後:

for element in aList: 
    file.writelines("\n".join(element)) 
    file.write("\n") 
2
import itertools 
aList = [["Hello","1","2"],["Hello","3","4"],["Hello","5","6"]] 
with open('myfile.txt', 'w') as outfile: 
    for e in itertools.chain.from_iterable(aList): 
     outfile.write(e+'\n') 
+0

'寫('\ n'.join(chain.from_iterable(ALIST)))'會寫列表,而不需要一個循環 –

+0

的但是,這將創建一個字符串,其大小與增長的aList''大小。如果這會非常大,它變得非常低效的記憶 – inspectorG4dget