python - 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 中的模块。
解决方案
一个更通用的解决方案,避免硬编码并为丢失的数据填充“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
推荐阅读
- javascript - Onclick 功能不适用于自定义弹出窗口
- javascript - 带有预渲染 SPA 的 Vue.js 创建双脚本标签
- spring-boot - 如何在 Spring-boot 中编写一个通用的 java 函数来查询结果,基于多个查询过滤器
- amazon-web-services - 使用 Sqoop 将表从 MySQL 移动到使用远程安装的 Airflow 安排的 Hive
- android - 我可以通过输入一些参数来修改 android 项目模板吗?
- github - 按源分支限制 github 合并类型
- python - botocore.exceptions.ClientError:调用PutObject操作时发生错误(AccessDenied):访问被拒绝
- python - 为什么 print('NaN') 显示与 print(float('NaN')) 不同的结果
- matlab - Matlab:使用函数句柄实现指数总和
- java - 尽管类路径正确,Javac 仍找不到 SWT 库