我有兩個長度不一樣的list ,我想讓他寫入到同一個CSV 由上到下,並欄位命名為A與B?

 

 


以下是實現將兩個長度不同的列表寫入同一個 CSV 文件的完整程式碼,每個列表分別作為 CSV 的一列,並自動填充較短列表的空白欄位為空字串。

示例程式碼

import csv

# 範例列表
list_a = [1, 2, 3, 4]
list_b = ["a", "b", "c"]

# 找到較長列表的長度
max_length = max(len(list_a), len(list_b))

# 填充較短的列表
list_a += [""] * (max_length - len(list_a))
list_b += [""] * (max_length - len(list_b))

# 將兩個列表寫入到同一個 CSV
with open("output.csv", "w", newline="", encoding="utf-8") as file:
    writer = csv.writer(file)
    
    # 寫入欄位名稱
    writer.writerow(["A", "B"])
    
    # 寫入數據
    for a, b in zip(list_a, list_b):
        writer.writerow([a, b])

print("CSV 文件已成功生成!")

輸出說明

執行程式後會生成一個名為 output.csv 的文件,內容如下:

AB
1 a
2 b
3 c
4  

程式邏輯

  1. 計算最大長度:使用 max() 找到兩個列表中較長的那個長度。
  2. 填充空白:對較短的列表,用空字串填充 ("") 以匹配較長的長度。
  3. 寫入 CSV
    • 第一行為標題(A 和 B)。
    • 使用 zip 遍歷兩個列表並逐行寫入。

你可以根據需要修改列表名稱或欄位標題。