Python 按特定规则对词典排序
我有一本字典(D)的字典(D1..DN)。这些DN的内部是成对的数字。结果如下所示:Python 按特定规则对词典排序,python,Python,我有一本字典(D)的字典(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}, } D2 = {1:{1: 15, 2: 20, 3: 0, 4: 50, 5: 0, 6:100}, 2:{1: 14, 2: 21, 3: 25, 4: 0,
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},
}
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},
}
现在,我想出了一个程序,比较一行和另一行的numpers,找出彼此接近的numpers。如果它在第一行(带键j)中发现一个数字属于第二行(带键k)中的一个数字,它将生成一个元组(j,k)。程序对除最后一行之外的每一行执行此操作,因此最后我们将有(N-1)-元组列表
C = [[(1,1),(2,2)],
[(1,1),(3,2),(4,3)],
]
现在我需要的是将这条规则应用到我的字典D中,因此每行中的键表示我在程序中收集的信息,如果没有信息可以用零填充该位置。我希望结果如下所示:
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},
}
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
实际上是一个集合
,如其中一条注释所示。要创建字典,需要按以下方式指定键
和值
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},
}
D
是发布的集合,而不是字典。这将是一个错误,因为字典是不可散列的。你把钥匙忘在那儿了。。。。或者你指的是一系列字典。我认为你应该花更多的时间解释你的目标是什么。