如何将两个数组按元素位置配对为两列并转换为CSV格式
实现方案
以下提供几种常用场景的实现方式:
1. Python 生成标准CSV文件
用Python内置csv模块实现,能自动处理含空格、逗号的特殊元素,避免CSV解析异常:
import csv # 定义数组 A = ["stu vtz", "smkkn", "gfd", "hskb", "nsn", "ffdsf"] B = ["abc", "def", "ghi", "jkl", "mno", "pqr"] # 校验数组长度一致 if len(A) != len(B): raise ValueError("两个数组长度必须相同才能按位置配对") # 写入CSV with open("output.csv", "w", newline="", encoding="utf-8") as f: writer = csv.writer(f) # 写入表头 writer.writerow(["A", "B"]) # 按位置配对写入内容 for a_val, b_val in zip(A, B): writer.writerow([a_val, b_val])
生成的output.csv标准内容为:
A,B stu vtz,abc smkkn,def gfd,ghi hskb,jkl nsn,mno ffdsf,pqr
2. 生成示例中的对齐纯文本表格
如果需要输出和你给出示例完全一致的对齐展示效果,用字符串格式化即可实现:
A = ["stu vtz", "smkkn", "gfd", "hskb", "nsn", "ffdsf"] B = ["abc", "def", "ghi", "jkl", "mno", "pqr"] # 计算列宽 max_a_width = max(len(i) for i in A + ["A"]) max_b_width = max(len(i) for i in B + ["B"]) # 输出表格 print(f"|{ 'A'.center(max_a_width) }|{ 'B'.center(max_b_width) }|") print(f"|{ '-'*max_a_width }|{ '-'*max_b_width }|") for a, b in zip(A, B): print(f"|{ a.ljust(max_a_width) }|{ b.ljust(max_b_width) }|")
3. Linux Shell 快速实现
如果是Shell场景,用paste命令即可快速合并生成CSV:
paste <(printf "%s\n" A "stu vtz" smkkn gfd hskb nsn ffdsf) <(printf "%s\n" B abc def ghi jkl mno pqr) | sed 's/\t/,/g' > output.csv
内容的提问来源于stack exchange,提问作者risheendra
相关产品推荐
相关产品推荐

