Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 按特定规则对词典排序_Python - Fatal编程技术网

Python 按特定规则对词典排序

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)的字典(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, 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
是发布的
集合,而不是字典。这将是一个错误,因为字典是不可散列的。你把钥匙忘在那儿了。。。。或者你指的是一系列字典。我认为你应该花更多的时间解释你的目标是什么。