Python 中的嵌套默认值
Nested Defaultdicts in Python
我在更新嵌套 defaultdict 中的列表时遇到问题。
这是我的代码:
a = ['20160115', 'shadyside medical building', 1, 'Review']
b = ['20160115', 'shadyside medical building', 1, 'Video']
c = ['20160215', 'shadyside medical building', 1, 'Video']
d = ['20160215', 'medical building', 1, 'Video']
f = [a,b,c,d]
nested_dict = defaultdict(dict)
for date,keyword,pos,feature in f:
nested_dict[keyword].update({feature : [pos]})
nested_dict[keyword].update({feature : [pos]})
这是输出:
{'shadyside medical building':
{'Review': [1],
'Video': [1]},
'medical building':
{'Video': [1]}}
期望的输出是:
{'shadyside medical building':
{'Review': [1],
'Video': [1,1]},
'medical building':
{'Video': [1]}}
请注意视频的第二项已添加到视频列表中。
您没有嵌套任何 defaultdict
,所以这样做:
nested_dict = defaultdict(lambda: defaultdict(list))
和
nested_dict[keyword][feature].append(pos)
您还可以创建一个无限嵌套的 defaultdict:
NDict = lambda: None
NDict = lambda: defaultdict(NDict)
ouroboros = NDict()
ouroboros[1][2][3][4][5][6][7][8][9] = True
我在更新嵌套 defaultdict 中的列表时遇到问题。
这是我的代码:
a = ['20160115', 'shadyside medical building', 1, 'Review']
b = ['20160115', 'shadyside medical building', 1, 'Video']
c = ['20160215', 'shadyside medical building', 1, 'Video']
d = ['20160215', 'medical building', 1, 'Video']
f = [a,b,c,d]
nested_dict = defaultdict(dict)
for date,keyword,pos,feature in f:
nested_dict[keyword].update({feature : [pos]})
nested_dict[keyword].update({feature : [pos]})
这是输出:
{'shadyside medical building':
{'Review': [1],
'Video': [1]},
'medical building':
{'Video': [1]}}
期望的输出是:
{'shadyside medical building':
{'Review': [1],
'Video': [1,1]},
'medical building':
{'Video': [1]}}
请注意视频的第二项已添加到视频列表中。
您没有嵌套任何 defaultdict
,所以这样做:
nested_dict = defaultdict(lambda: defaultdict(list))
和
nested_dict[keyword][feature].append(pos)
您还可以创建一个无限嵌套的 defaultdict:
NDict = lambda: None
NDict = lambda: defaultdict(NDict)
ouroboros = NDict()
ouroboros[1][2][3][4][5][6][7][8][9] = True