我有一本字典(D)的dictionarys(D1..DN)。这些DN里面是数字对。结果如下:
D = {1:{1: 15, 2: 20, 3: 50, 4:100},
2:{1: 14, 2: 21, 3: 25, 4: 75},
3:{1: 16, 2: 24, 3: 74, 4:102},
}
现在,我想出了一个程序,它将一行的numpers与另一行的numpers进行比较,找到彼此接近的那些。如果它找到第一行(带有键j)的数字属于第二行中的数字(使用键k),则它产生一个元组(j,k)。程序为除了最后一行之外的每一行执行此操作,因此最后我们将有(N-1)列表元组。
C = [[(1,1),(2,2)],
[(1,1),(3,2),(4,3)],
]
现在我需要的是这个规则应用于我的字典D,所以每行中的键代表我在程序中收集的信息,如果没有信息用零填充该位置。我希望结果看起来像这样:
D2 = {1:{1: 15, 2: 20, 3: 0, 4: 50, 5: 0, 6:100},
2:{1: 14, 2: 21, 3: 25, 4: 0, 5: 75, 6: 0},
3:{1: 16, 2: 0, 3: 24, 4: 0, 5: 74, 6:102},
}
我知道这应该是一个相当容易的问题,但我现在已经尝试了几个小时,我无法理解这个问题。问题是,如果我找到一个没有合作伙伴的数字,我需要在所有其他行中递归地生成占位符零。
编辑:你是对的,我只是忘了字典里的钥匙D.谢谢。然而问题仍然存在。答案 0 :(得分:1)
D
实际上是其中一条评论所表达的set
。要创建字典,您需要按以下方式指定Key
和value
。
D = {
'1': {1: 15, 2: 20, 3: 50, 4:100},
'2':{1: 14, 2: 21, 3: 25, 4: 75},
'3': {1: 16, 2: 24, 3: 74, 4:102},
}