You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何将两个列表按指定逗号分隔格式写入文本文件

解决方案

你遇到的问题核心是csv.writer的writerows方法要求传入的每个元素是待写入当前行所有字段的可迭代对象,你之前直接传入zip(b,c)时,每个元素是(4, [1,2,3])这类组合,子列表会被识别为单个字段,csv模块自动给带逗号的列表字符串加了引号,只要把对应子列表和b的元素展开拼接为单行的字段集合即可,以下是几种不同实现方案:

方法1:生成器表达式解包拼接(无需额外依赖,性能最优)

直接在传入writerows时解包每对子元素,不需要提前构造完整的新列表,内存占用低:

import csv

c = [[1,2,3],[4,5,2]]
b = [4,8]

with open("out.txt", "w", newline="") as f:
    writer = csv.writer(f)
    # 每一行的字段由b的单个元素 + c对应子列表的所有元素组成
    writer.writerows((b_item, *c_item) for b_item, c_item in zip(b, c))

方法2:手动拼接字符串写入(不需要导入csv模块)

如果场景简单不需要处理复杂的csv转义规则,直接手动拼接行内容写入即可:

c = [[1,2,3],[4,5,2]]
b = [4,8]

with open("out.txt", "w") as f:
    for b_item, c_item in zip(b, c):
        # 把所有元素转成字符串后用逗号拼接,加换行符
        line = ','.join(map(str, [b_item] + c_item)) + '\n'
        f.write(line)

方法3:使用pandas写入(适合正在处理结构化数据的场景)

如果你已经在用pandas做数据处理,可以直接构造DataFrame后导出:

import pandas as pd

c = [[1,2,3],[4,5,2]]
b = [4,8]

# 构造每行的完整数据
df = pd.DataFrame([[b_item] + c_item for b_item, c_item in zip(b, c)])
df.to_csv("out.txt", header=False, index=False)

内容的提问来源于stack exchange,提问作者ous

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 00:39:05