[英]Creating dictionary inside dictionary, list
我有这样的数据:
[
('A','B','Z'),
('A','B','Y'),
('A','B','X'),
('A','C','Z'),
('A','C','Y'),
('A','C','X'),
('D','B','Z'),
('D','B','Y'),
('D','B','X')
]
现在我正在尝试从中创建一个字典,如下所示:
basic_dict = {
"A" : {
"B" : ['Z','Y','X'],
"C" : ['Z','Y','X']
},
"D" : {
"B" : ['Z','Y','X']
}
我编写了如下代码来实现这一点,但不知何故我没有得到正确的结果:
basic_dict = {}
for i in data_list:
url_list = []
batchname_key = i[0]
scrapid_key = i[1]
for u in i[2]:
url_list.append(u)
basic_dict[batchname_key] = {scrapid_key : url_list}
basic_dict {'A': {'C': ['X']}, 'D': {'B': ['X']}}
第二个问题是如何访问这个字典。
您可以使用dict.setdefault
方法遍历data_list
和 append url
到由batchname_key
在由scrapid_key
索引的子字典下索引的子字典:
basic_dict = {}
for batchname_key, scrapid_key, url in data_list:
basic_dict.setdefault(batchname_key, {}).setdefault(scrapid_key, []).append(url)
basic_dict
变为:
{'A': {'B': ['Z', 'Y', 'X'], 'C': ['Z', 'Y', 'X']}, 'D': {'B': ['Z', 'Y', 'X']}}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.