2024-04-19 10:51:40 发布
网友
因此,我试图创建一个嵌套字典,但我似乎无法围绕逻辑我的头。你知道吗
假设我的输入来自csv:
1,2,3 2,3,4 1,4,5
现在,我想创建一个字典,如下所示:
d ={1:{2:3,4:5}, 2:{3:4}}
这样,对于第一个ID列,我们在子字典中创建与第二个值对应的键。你知道吗
我尝试的方式是:
d[row[0]] = {row[1]:row[2]}
但这会覆盖第一个,而不是附加/推送到它,我将如何处理这个问题?我似乎不知道该用什么钥匙。你知道吗
感谢您的指导。你知道吗
您可以使用defaultdict,它与内置字典类似,但将创建具有默认值的字典,在您的情况下,默认值将是字典
from collections import defaultdict res = defaultdict(dict)
通过这段代码,我们创建了一个defaultdict,它的值default value的类型是dict,所以接下来我们要做的是
for row in l: res[row[0]][row[1]] = row[2]
if dict[row[0]] == None: dict[row[0]] = {row[1]:row[2]} else: dict[row[0]][row[1]] = row[2]
是的,因为dict[row[0]] =是dict[1] =覆盖先前dict[1]值的内容 您应该使用:
dict[row[0]] =
dict[1] =
dict[1]
dict.setdefault(row[0],{})[row[1]] = row[2]
请记住,行[1]必须没有重复项
或者
dict.setdefault(row[0],{}).update({row[1]:row[2]})
您可以使用defaultdict,它与内置字典类似,但将创建具有默认值的字典,在您的情况下,默认值将是字典
通过这段代码,我们创建了一个defaultdict,它的值default value的类型是dict,所以接下来我们要做的是
是的,因为
dict[row[0]] =
是dict[1] =
覆盖先前dict[1]
值的内容 您应该使用:请记住,行[1]必须没有重复项
或者
相关问题 更多 >
编程相关推荐