Python 创建词典词典

Python 创建词典词典,python,python-3.x,Python,Python 3.x,我有以下代码: list_one = ['a', 'b'] list_two = ['1', '2'] list_three = {} 我想要的结果是: list_three = { 'a':{1:[], 2:[]}, 'b':{1:[], 2:[]} } 我正在尝试一些疯狂的x-IN-y循环,但没有得到我想要的重用lt使用嵌套字典理解: print({k:{int(k2):[] for k2 in list_two} for k in list_on

我有以下代码:

list_one = ['a', 'b']
list_two = ['1', '2']
list_three = {}
我想要的结果是:

list_three = {
        'a':{1:[], 2:[]},
        'b':{1:[], 2:[]}
    }

我正在尝试一些疯狂的x-IN-y循环,但没有得到我想要的重用lt

使用嵌套字典理解:

print({k:{int(k2):[] for k2 in list_two} for k in list_one})
输出:

{'a': {1: [], 2: []}, 'b': {1: [], 2: []}}

使用嵌套字典理解:

print({k:{int(k2):[] for k2 in list_two} for k in list_one})
输出:

{'a': {1: [], 2: []}, 'b': {1: [], 2: []}}

您始终可以创建一个嵌套的列表:

from collections import defaultdict
from pprint import pprint

list_one = ['a', 'b']
list_two = ['1', '2']

d = defaultdict(lambda : defaultdict(list))

for x in list_one:
    for y in list_two:
        d[x][int(y)]

pprint(d)
这将自动为您初始化内部列表:

defaultdict(<function <lambda> at 0x000002AEA8D4C1E0>,
            {'a': defaultdict(<class 'list'>, {1: [], 2: []}),
             'b': defaultdict(<class 'list'>, {1: [], 2: []})})

您始终可以创建一个嵌套的列表:

from collections import defaultdict
from pprint import pprint

list_one = ['a', 'b']
list_two = ['1', '2']

d = defaultdict(lambda : defaultdict(list))

for x in list_one:
    for y in list_two:
        d[x][int(y)]

pprint(d)
这将自动为您初始化内部列表:

defaultdict(<function <lambda> at 0x000002AEA8D4C1E0>,
            {'a': defaultdict(<class 'list'>, {1: [], 2: []}),
             'b': defaultdict(<class 'list'>, {1: [], 2: []})})

小心:
d['a']['1'].append(“hello”)
可能无法满足您的需要。这就是问题所在!也学到了一些新的东西,以后会标为答案timer@AriVictor很乐意帮忙!,:-)@MarkMeyer Now?此输出与OP的预期输出略有不同,OP需要整数键。请小心:
d['a']['1']。append(“hello”)
可能无法满足您的需要。这就是问题所在!也学到了一些新的东西,以后会标为答案timer@AriVictor很乐意帮忙!,:-)@MarkMeyer Now?此输出与OP的预期输出略有不同,OP需要整数键。