Python:将值为array的字典转换为无括号缩进的表格形式
解决方法:将字典中的numpy数组转为无括号的表格输出
你遇到的问题核心是直接打印numpy数组时,它会自带括号和特定格式。要实现你想要的无缩进、无括号的输出,需要把数组里的元素单独提取出来,和键一起拼接成字符串。
这里有两种实用的写法:
方法1:解包数组元素(适合固定长度的数组)
如果你的每个数组长度都是3,直接用解包操作符*把数组元素拆成单独的参数传给格式化函数:
# 假设你的字典名为gene_data for gene, arr in gene_data.items(): print("{}\t{}\t{}\t{}".format(gene, *arr))
这样*arr会把[0,2,2]拆成0,2,2三个独立值,输出就会变成PLGLB1 0 2 2(这里用制表符分隔,你也可以换成空格)。
方法2:通用拼接(适合任意长度的数组)
如果数组长度不固定,用join方法更灵活,先把数组元素转成字符串再拼接:
for gene, arr in gene_data.items(): # 把数组元素转成字符串列表,再用制表符/空格连接 print(f"{gene}\t{' '.join(map(str, arr))}")
这种方式不管数组有多少个元素,都能正确展开成无括号的形式。
为什么你的原代码不行?
你原来的代码print("{}\t{}".format(i,dict[i]))直接打印了整个numpy数组,而numpy数组的默认字符串表示就是带[]的格式,所以才会出现BAIAP3 [0 2 2]这样的输出。我们需要把数组拆成单个元素再输出,就能去掉括号啦。
内容的提问来源于stack exchange,提问作者Miss
相关产品推荐
相关产品推荐

