如何访问嵌套 defaultdict python 2.7 中的列表?
How to access a list in a nested defaultdict python 2.7?
我有下面的代码,它能够为我提供每个 wordQ1
的文档频率,现在我需要 wordQ1
的术语频率 TF
(TF
在每个文档 DocID
) 和每个 DocID
.
的 DocSize
数据结构是这样的:
FinalHash[wordQ1]={DocID: [TF,DocSize]}
我的输出应该如下所示:
- 当前文档为999
- 本文档中包含的令牌数为 59
- george 文档频率为 142(我已经完成了)
George 术语在文件 999 中的频率为 5
Term_List1=[]
DF1 = 0
Term_List1 = FinalHash[wordQ1] # FinalHash is defaultdict
for d in Term_List1: # is the list of all dictionaries where each dict contains {DocID: [TF,DocSize]}
for i in d.keys(): # in this case i is the docID
DF1 = DF1+1 # counter to get the document frequency of a term
print i
print "document frequency of wordQ1 is",DF1 # document frequency
非常感谢您的帮助
您可以通过更改循环方式来获取内部词典中的值。用这样的东西替换 for i in d.keys()
循环:
for DocID, (TF, DocSize) in d.items():
# ...
你还没有真正解释你想用 TF
和 DocSize
值做什么,所以我把循环的实际内容留给你。
请注意,这里需要一个循环有点傻。如果你是创建你正在处理的数据结构的人(而不是从一些外部来源获取它),你应该将其设计更改为单个字典(在这个级别)而不是字典列表,每个字典都有一个键。也就是说,您将摆脱数据结构的 Term_List1
级别,并在该点直接获得 d
。
我有下面的代码,它能够为我提供每个 wordQ1
的文档频率,现在我需要 wordQ1
的术语频率 TF
(TF
在每个文档 DocID
) 和每个 DocID
.
DocSize
数据结构是这样的:
FinalHash[wordQ1]={DocID: [TF,DocSize]}
我的输出应该如下所示:
- 当前文档为999
- 本文档中包含的令牌数为 59
- george 文档频率为 142(我已经完成了)
George 术语在文件 999 中的频率为 5
Term_List1=[] DF1 = 0 Term_List1 = FinalHash[wordQ1] # FinalHash is defaultdict for d in Term_List1: # is the list of all dictionaries where each dict contains {DocID: [TF,DocSize]} for i in d.keys(): # in this case i is the docID DF1 = DF1+1 # counter to get the document frequency of a term print i print "document frequency of wordQ1 is",DF1 # document frequency
非常感谢您的帮助
您可以通过更改循环方式来获取内部词典中的值。用这样的东西替换 for i in d.keys()
循环:
for DocID, (TF, DocSize) in d.items():
# ...
你还没有真正解释你想用 TF
和 DocSize
值做什么,所以我把循环的实际内容留给你。
请注意,这里需要一个循环有点傻。如果你是创建你正在处理的数据结构的人(而不是从一些外部来源获取它),你应该将其设计更改为单个字典(在这个级别)而不是字典列表,每个字典都有一个键。也就是说,您将摆脱数据结构的 Term_List1
级别,并在该点直接获得 d
。