在矩阵中打印嵌套字典-python
正在寻找将嵌套字典打印为矩阵的方法: 输入 到目前为止,我有:在矩阵中打印嵌套字典-python,python,nested,format,Python,Nested,Format,正在寻找将嵌套字典打印为矩阵的方法: 输入 到目前为止,我有: for h, innerD in nestedD.items(): print (h) for r in innerD: print("{: >10} {: >10} {: >10}".format(*innerD[r])) TypeError:*后面的format()参数必须是
for h, innerD in nestedD.items():
print (h)
for r in innerD:
print("{: >10} {: >10} {: >10}".format(*innerD[r]))
TypeError:*后面的format()参数必须是iterable,而不是float
如何使用format()遍历内部字典的浮动?对于h,nestedD.items()中的innerD:
打印(h)
打印(“{:>10}{:>10}{:>10}”。格式(*innerD.values())
因此,出现错误的原因是innerD[r]
解析为地址nestedD[h][r]
处的数字。星号将您可以迭代的内容(如列表)作为参数列表传递给函数。
因为您有3个格式参数,所以应该用3个参数传递格式。在上面更新的代码中,这三个参数来自内部字典的值
再读一遍你的问题,似乎仍然不是你想要的。似乎你想先在字典上做一种轮换。上述答案将错误地排列值
print(“| |{}{}{}{}{}|”。格式(*nestedD.keys())
headers=nestedD.keys()
#这里有一个假设,所有内部字典都有相同的键
rows=nestedD.values[0].keys()
rotatedD=dict([(行,dict([(表头,嵌套的[header][row])表示表头中的表头])表示行中的行])
对于键,旋转中的值为:
str_values=“|”。.join([“{:>10}.”格式(v)表示值中的v])
打印(“|{key}|{values}|”
非常感谢,您的回答的两部分都有助于我的理解!我是一个菜鸟,不能把我的头围绕着它。我试图实现您建议的代码,但第5行出现语法错误。请您详细说明第5行中出现的rotatedD
?对不起,我已经修复了语法错误。可以将字典构建为表示键和值的元组列表。我所做的(可能过于匆忙)是使用嵌套字典,它是由标题和行组成的键。我经常使用以下语法帮助自己理解:[header][row]=value
该行的作用是将其转换为以下形式:[row][header]=value
Output
| | h1 | h2 | h3 |
| -- | -------- | -------- | ------- |
| r1 | float1 | float4 | float7 |
| r2 | float2 | float5 | float8 |
| r3 | float3 | float6 | float9 |
for h, innerD in nestedD.items():
print (h)
for r in innerD:
print("{: >10} {: >10} {: >10}".format(*innerD[r]))