列表字典到嵌套字典

I n*_*elp 6 python dictionary list

我有以下字典{44: [0, 1, 0, 3, 6]},需要将其转换为,dict1 = {44: {0:0, 1:1, 2:0, 3:3, 4:6}}但是我当前的for循环不起作用:

maxnumbers = 5          #this is how many values are within the list
for i in list(range(maxnumbers)):
    for k in list(dict1.keys()):
        for g in dict1[k]:
            newdict[i] = g
print(num4)
Run Code Online (Sandbox Code Playgroud)

你能帮助我吗?提前致谢。

yat*_*atu 13

您可以通过以下方式使用字典理解enumerate

d = {44: [0, 1, 0, 3, 6]}

{k:dict(enumerate(v)) for k,v in d.items()}
# {44: {0: 0, 1: 1, 2: 0, 3: 3, 4: 6}}
Run Code Online (Sandbox Code Playgroud)


Aus*_*tin 5

使用一个简单的嵌套字典理解,它使用enumerate

d = {44: [0, 1, 0, 3, 6]}

print({k: {i: x for i, x in enumerate(v)} for k, v in d.items()})
# {44: {0: 0, 1: 1, 2: 0, 3: 3, 4: 6}}
Run Code Online (Sandbox Code Playgroud)


tem*_*mmo 2

a = {44: [0, 1, 0, 3, 6]}
a= {i:{j:a[i][j] for i in a for j in range(len(a[i]))}}

print(a)
Run Code Online (Sandbox Code Playgroud)

输出

 {44: {0: 0, 1: 1, 2: 0, 3: 3, 4: 6}}
Run Code Online (Sandbox Code Playgroud)