用python编写csv中特定列的列表

2024-09-20 23:03:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有如下清单。 a=[[1,2,3],[2,3,4],[3,4,5]]

我还有一个单独的名单 names=['Ann'、'john'、'smith']

现在我想把它写进一个csv文件,如下所示

1st row: Ann,1,2,3
2nd row: john,2,3,4
3rd row: smith,3,4,5

我目前正在使用

with open(output_file, 'w') as f:
        writer = csv.writer(f)
        writer.writerows(a)

但是,它不能完成我想要的工作,因为它总是从第一列开始,而不是从第二列开始。请帮帮我。你知道吗


Tags: 文件csvoutputnamesaswithopenjohn
3条回答
with open("output_file", 'w') as f:
    f.write("\n".join([','.join(map(str, [name] + extra)) for name, extra in zip(name, extras)])
with open(output_file, 'w') as f:
   f.write('\n'.join([elem[0]+','+str(elem[1]).strip('[').strip(']') for elem in zip(names,a)]))

试试这个。你知道吗

这里要理解的关键点是,您希望并行处理列表。这可以通过使用内置函数zip轻松实现。它获取一个iterable列表,并将每个iterable的第n个元素作为一个元组生成。然后可以使用str.format格式化行:

names = ['Ann', 'john', 'smith']
sublists = [[1,2,3], [2,3,4], [3,4,5]]

with open(output_file, 'w') as file:
    for name, sublist in zip(names, sublists):
        row = '{},{},{},{}'.format(name, *sublist)
        file.write(row)

注意:如果您的列表大小不同,您可能需要考虑使用^{}。你知道吗

相关问题 更多 >

    热门问题