首页 > 解决方案 > Python3:如何根据元组字典生成表

问题描述

我有一个dict以元组为键的,比如:

my_dict = {('A1', 'A2'): 0.6, ('A1', 'A1'): 1, ('A2', 'A2'): 1, ('A2', 'A1'): 0.3}

我想打印一个表格,如:

Table   A1    A2 
A1      1     0.6
A2      0.3   1

如何在不使用 Pandas 的情况下处理这个问题?我只是不想导入没有内置在 python 中的模块。

标签: pythondictionary

解决方案


一个更通用的解决方案,避免硬编码并为丢失的数据填充“NA”:

my_dict = {('A1', 'A2'): 0.6, ('A3', 'A1'): 1, ('A2', 'A2'): 1, ('A2', 'A1'): 0.3}

labs = []
for key in my_dict.keys():
    for k in key:
        if k not in labs:
            labs.append(k)
labs = sorted(labs)

print("Table\t" + "\t\t".join(labs))
for i in labs:
    print(i, end="\t\t")
    for j in labs:
        try:
            print(my_dict[(i, j)], end="\t\t")
        except KeyError:
            print("NA", end="\t\t")
    print()

输出:

Table   A1      A2      A3
A1      NA      0.6     NA      
A2      0.3     1       NA      
A3      1       NA      NA      

推荐阅读