2 回答

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊
我編輯了我的答案,您沒有使用字典。你有一個(gè)元組列表。
import csv
with open('output.csv', 'wb') as f:
writer = csv.writer(f)
writer.writerow(['Subject', 'Sij', 'gij'])
for row in sorted_combined:
l = [row[0]]
l.append(row[0][1])
l.append(row[1][1])
writer.writerow(l)
就像你在最初的嘗試中一樣, csv.writer 是要走的路

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊
您可以生成一個(gè)列表,將其展平并使用CSV簡單地編寫它。不過,我不知道是否有更短的方法。
import csv
my_dict = {"sub001_01": [6578,18], "sub992_03": [3820,5]}
with open('my_file.csv', 'w') as f:
w=csv.writer(f)
w.writerow(["Subject", "Sij", "gij"])
for i in list(my_dict.items()):
#We first make a list like: ['test', 1, 2, 3]
list1=[a for a in i]
list_final=[]
list_final.append(i[0])
for c in list1[1]:
list_final.append(c)
#We use writerow() to write our new list
w.writerow(list_final)
輸出:
Subject,Sij,gij
sub001_01,6578,18
sub992_03,3820,5
要使用 '\t' 而不是逗號,只需指定分隔符
w=csv.writer(f,delimiter="\t")
這將產(chǎn)生:
Subject Sij gij
sub001_01 6578 18
sub992_03 3820 5
PS:這適用于 Python 3.X
編輯:忘記提及這是一個(gè)可以處理 2 個(gè)以上值的通用循環(huán)。您也可以將它與其他字典(帶有包含多個(gè)值的列表)一起使用。
添加回答
舉報(bào)