【发布时间】:2014-10-29 08:33:15
【问题描述】:
我有一个代码试图将一个字典嵌套在另一个字典中。代码如下所示。问题是字典“CC”每次通过循环都会重写自己。有没有办法防止这种情况?我试过附加到一个列表,然后写字典没有运气。节点、CoordComboSort 和 Xcoord 是代码中的所有其他字典。
CoordComboSort 看起来像这样:
{0:[(1, 4, 5), (1, 7, 4)], .001:[(4, 6, 8), (3, 8, 6)]}
节点看起来像这样:
{'time':[ 'A', 'B']}
我希望最终的字典看起来像这样:
{'A': 0: [(1, 4, 5)], .001: [(4, 6, 8)], 'B': 0: [(1, 7, 4)], .001: [(3, 8, 6)]}
CC = {}
for key in CoordComboSort.keys():
for step in range(len(Xcoord[0])):
CC[Nodes['time'][step]] = CoordComboSort[key][step]
上面的代码生成了一个如下所示的字典:
{'A': [(4, 6, 8)], 'B': [(3, 8, 6)]}
【问题讨论】:
-
你知道字典中的每个键都必须是唯一的吗?看来密钥
Nodes['time'][step]正在生成相同的密钥,因此覆盖了最后一个密钥:值 -
什么是
Nodes?CoordComboSort?Xcoord?你期待什么输出,你会得到什么? -
重写自己是什么意思?尝试提供可以由其他 SO 成员运行的输入,以重现您的行为。
-
Xcoord 长什么样子?
-
...你会得到什么? 为什么你的输出是一个包含单个三元组的列表?键
.001不能有两个值;您可以为该键创建一个由三元组组成的二元列表。
标签: python dictionary