3 回答
TA贡献1825条经验 获得超6个赞
您可以zip在解压 dict 值后使用:
with open('text.csv', 'w') as f:
writer = csv.writer(f, delimiter='\t')
writer.writerows(zip(*d.values()))
TA贡献1820条经验 获得超9个赞
如果您愿意使用 Pandas,那将相当简单。我还建议不要dict用作变量名,因为它是一个内置函数。
import pandas as pd
arr_dict = {'a': [1, 2, 3], 'b': [4, 5, 6], 'c': [7, 8, 9]}
pd.DataFrame(arr_dict).to_csv('test.csv', index=False, sep='\t')
如果数组的长度不同,则您必须更有创意。这篇文章中有很多例子,其中一个在这里:
pd.DataFrame.from_dict(arr_dict, orient='index').T
TA贡献1789条经验 获得超10个赞
您可以从这里修改,然后将输出写入文件。我相信有更清洁的方法可以做到这一点,但这可以满足您的要求。尽管这假设行的长度都相同。如果所有列都没有数据,则不会产生所需的输出。
# data in
dict = {'a':[1,2,3],
'b':[4,5,6],
'c':[7,8,9]}
cols = []
for k, v in dict.items():
cur_col = 0
for i in v:
try:
cols[cur_col].append(str(i))
cur_col += 1
except IndexError as e:
cols.append([str(i)])
cur_col +=1
cur_col = 0
for row in cols:
print("\t".join(row))
输出:
1 4 7
2 5 8
3 6 9
添加回答
举报