Python将变长列表写入txt文件

时间:2017-07-29 17:50:07

标签: python list format output

我想将列表输出到带格式的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]))

我想知道如何修改此代码,以便此代码可以用于不同的列表长度?

2 个答案:

答案 0 :(得分: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'

答案 1 :(得分:4)

只需使用mapjoin

a = [1,2,3]

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