2017-07-29 84 views
2

我想將列表輸出爲格式爲txt的文件。但名單長度會不時變化。Python將長度可變的列表寫入txt文件

的代碼是這樣的:

a = [1, 2, 3] #**but this could also be: a = [1, 2, 3, 6, 9] or [1, 90]** 
with open('node.k','w') as file: 
    file.write(((len(a)-1)*'{},'+'{}\n').format(a[0],a[1],a[2])) 

我不知道我應該如何修改這個代碼,以便這些代碼可以爲不同的列表長度工作?

+1

拆開列表:'格式(*一)' –

回答

4

只需使用mapjoin

a = [1,2,3] 

with open('node.k','w') as file: 
    file.write(','.join(map(str,a))+'\n') 
4

正如評論說,你可以通過unpacking your list做到這一點爲str.format()

>>> a = [1, 2, 3] 
>>> ((len(a)-1)*'{},'+'{}\n').format(*a) 
'1,2,3\n' 
>>> a = [1, 2, 3, 7, 60] 
>>> ((len(a)-1)*'{},'+'{}\n').format(*a) 
'1,2,3,7,60\n' 

這樣一來,您就不必每個其索引的a明確地傳送。但是這可以通過使用map()str.join()進行清潔:

>>> a = [1, 2, 3] 
>>> ','.join(map(str, a)) + '\n' 
'1,2,3\n' 
+0

我想如果@downvoter會很感激。解釋他們的推理? –