我想将列表输出到带格式的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]))
我想知道如何修改此代码,以便此代码可以用于不同的列表长度?
答案 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)
只需使用map
和join
:
a = [1,2,3]
with open('node.k','w') as file:
file.write(','.join(map(str,a))+'\n')