如何从另一个字典创建一个叠层字典,该字典具有不同数量的元素,每个键与一个函数相结合

How can I create an imbricated dictionnary from another dictionnary that has different numbers of element for each key combined with a function

我在从每个键具有不同数量元素的另一个字典初始化一个叠瓦式字典时遇到问题。

基本上我的第一本词典是这样的: {0: [238, 159], ..., 7 [290, 311, 8], 67 [135, 173, 69, 68, 70, 71], ...} 它显示了您可以从键转到哪里您正在选择,例如从键 0 可以转到点 238 和 159。 我有一个时间函数 returns 我知道从一个点到另一个点需要多少时间。

我想要的结果是这样的: {0: {238: 时间(0, 238), 159: 时间(0, 159)}, ..., {7: {290: 时间(7, 290), 311: 时间(7 ,311), 8 : 时间(7, 8)}, ...}

正如我所说,第一个词典中的所有键 (0-375) 在其列表中都有 1-6 个元素。 我从 .txt

中获取了所有数据

*对不起我的英语,如果你不明白,请不要犹豫问我问题,我也可以给你看我的代码,但它有点长,所以我试图简化

我做了一个样例时间class你可以换成你的。 newDict 将是您要查找的形式的字典。

class Time:
    def __init__(self,x,y):
        self.x = x
        self.y = y
    def printXY(self):
        return ("Time (" + str(self.x) + "," + str(self.y) + ")")
def solution():
    dict = {0:[238,159], 
            7:[290,311,8], 
            67:[135, 173, 69, 68, 70, 71]}
    
    newDict = {}
    
    for key, value in dict.items():
        tempDict = {}
        for v in value:
            tempDict[v] = Time(key,v)
        newDict[key] = tempDict
    
    for key,value in newDict.items():
        print("For key = " + str(key))
        for k,v in value.items():
            print(str(k) + ":"+ v.printXY())
        print ("")
'''
OUTPUT:

For key = 0
238:Time (0,238)
159:Time (0,159)

For key = 7
290:Time (7,290)
311:Time (7,311)
8:Time (7,8)

For key = 67
135:Time (67,135)
173:Time (67,173)
69:Time (67,69)
68:Time (67,68)
70:Time (67,70)
71:Time (67,71)
'''