使用除AttributeError之外的defaultdict来初始化List

时间:2017-11-30 12:55:05

标签: python attributeerror defaultdict

我需要遍历一些数据并创建一个嵌套的字典4个键,其中前3个键的值为dict,最后一个键的值为type list,它将存储整数。我想避免KeyErrors所以我使用defaultdict()。我创建了一个递归函数,调用defaultdict()和try / except来查找AttributeError,以发现是否已经在defaultdict中创建了一个列表。使用try / except来查看AttributeError是否安全,或者我应该考虑一些其他错误表现出来?

def dict_factory():
    return defaultdict(dict_factory)
nestedDict = dict_factory()
try:
    nestedDict[k1][k2][k3][k4].append(someInt)
except AttributeError:
    nestedDict[k1][k2][k3][k4] = [someInt] 

我发现以下内容也有效。我会更好地使用这段代码吗?:

nestedDict = defaultdict(lambda: defaultdict(lambda: defaultdict(lambda: defaultdict(list))))

0 个答案:

没有答案