在Python中将一串数字键分成单个数字键

Pet*_*rne 2 python dictionary

我想翻开以下字典:

dictionary = {
    4388464: ['getting']
    827862 : ['Taruma', 'Varuna']
    ...
}
Run Code Online (Sandbox Code Playgroud)

成:

dictionary = {
    4: {3: {8: {8: {4: {6: {4: {'words': ['getting']}}}}}}}
    8: {2: {7: {8: {6: {2: {'words': ['Taruma', 'Varuna']}}}}}}
    ...
}
Run Code Online (Sandbox Code Playgroud)

这将允许我使用字典:dictionary[8][2][7][8][6][2]['words']而不是:dictionary[827862].

Ned*_*der 5

import pprint

dictionary = {
    4388464: ['getting'],
    43881: ['got'],
    827862 : ['Taruma', 'Varuna'],
}

d2 = {}

def add_it(d, k, words):
    knum = int(k[0])
    if len(k) == 1:
        d[knum] = {'words': words}
    else:
        dsub = d.setdefault(knum, {})
        add_it(dsub, k[1:], words)

for k, words in dictionary.items():
    add_it(d2, list(str(k)), words)


pprint.pprint(d2)
Run Code Online (Sandbox Code Playgroud)

打印:

{4: {3: {8: {8: {1: {'words': ['got']},
                 4: {6: {4: {'words': ['getting']}}}}}}},
 8: {2: {7: {8: {6: {2: {'words': ['Taruma', 'Varuna']}}}}}}}
Run Code Online (Sandbox Code Playgroud)