为了账号安全,请及时绑定邮箱和手机立即绑定

将字典中的多个数组写入列

将字典中的多个数组写入列

慕无忌1623718 2021-11-16 10:33:01
我有一本字典,看起来像:dict = {'a':[1,2,3],   'b':[4,5,6],   'c':[7,8,9]}我想将每个数组写入文件中的一列,输出如下所示:1 4 72 5 63 6 9其中值以制表符分隔。到目前为止,我已经尝试过:import csvwith open('text.csv', 'w') as f:    writer = csv.writer(f, delimiter='\t')    for k,array in dict.items():        writer.writerows(zip(array))但这只是在单列中打印数字 1 到 9。有人可以帮我弄这个吗?(有没有更有效的方法来存储字典中显示的多个数组,以便更容易地写入文件?)
查看完整描述

3 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

您可以zip在解压 dict 值后使用:


with open('text.csv', 'w') as f:

    writer = csv.writer(f, delimiter='\t')

    writer.writerows(zip(*d.values()))


查看完整回答
反对 回复 2021-11-16
?
慕妹3146593

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


查看完整回答
反对 回复 2021-11-16
?
至尊宝的传说

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


查看完整回答
反对 回复 2021-11-16
  • 3 回答
  • 0 关注
  • 208 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信