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

Python中如何导出两列数据至CSV?现有代码修改咨询

实现Python列表导出为两列CSV的修改方案

首先得先指出你原来代码里的几个小问题:

  • 循环里的x是从range生成的整数(0和1),你写的x[0]会直接报错,因为整数没有索引;
  • 每次循环都用"w"模式打开文件,这会覆盖之前写入的内容,最后只会留下最后一次循环的结果。

要导出两列数据,核心是把X和Y中对应位置的元素配对,然后每行写入一对元素作为两列。下面是修改后的完整代码:

import csv

X = ([1,2,3],[7,8,9])
Y = ([4,5,6],[3,4,5])

csvfile = "C:/Temp/aaa.csv"
# 只打开一次文件,避免覆盖内容;newline=''是csv模块推荐的写法,避免换行符问题
with open(csvfile, "w", newline='') as output:
    writer = csv.writer(output, lineterminator='\n')
    # 同时遍历X和Y中的子列表,把对应的子列表配对
    for x_sub_list, y_sub_list in zip(X, Y):
        # 再遍历每个子列表里的对应元素,生成两列数据
        for x_val, y_val in zip(x_sub_list, y_sub_list):
            # writerow传入包含两个元素的列表,就会生成两列
            writer.writerow([x_val, y_val])

运行这段代码后,你的aaa.csv内容会是这样的:

1,4
2,5
3,6
7,3
8,4
9,5

如果你的需求是把每个子列表作为一行的两部分(比如第一行是1,2,3和4,5,6,每行包含6个值),那只需要把内层循环去掉,直接合并子列表写入:

import csv

X = ([1,2,3],[7,8,9])
Y = ([4,5,6],[3,4,5])

csvfile = "C:/Temp/aaa.csv"
with open(csvfile, "w", newline='') as output:
    writer = csv.writer(output, lineterminator='\n')
    for x_sub, y_sub in zip(X, Y):
        # 把两个子列表合并成一个列表,写入一行
        writer.writerow(x_sub + y_sub)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:33:25