我需要遍历一些数据并创建一个嵌套的字典4键,其中前3个键的值为dict类型,最后一个键的值为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))))
目前没有回答
相关问题 更多 >
编程相关推荐