2 回答
TA贡献1821条经验 获得超6个赞
我编辑了我的答案,您没有使用字典。你有一个元组列表。
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贡献2065条经验 获得超14个赞
您可以生成一个列表,将其展平并使用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")
这将产生:
Subject Sij gij
sub001_01 6578 18
sub992_03 3820 5
PS:这适用于 Python 3.X
编辑:忘记提及这是一个可以处理 2 个以上值的通用循环。您也可以将它与其他字典(带有包含多个值的列表)一起使用。
添加回答
举报