Python如何构建包含词条文档出现位置的嵌套字典
修改后可直接运行的代码
# 禁止使用dict作为变量名,会覆盖Python内置字典类型 result_dict = {} # 同步遍历文件名列表和对应分词内容列表 for filename, tokens in zip(textfile_list, file_contents): # 遍历所有需要统计的目标词条 for word in words: # 收集当前词条在本文件中的所有出现下标 pos_list = [idx for idx, token in enumerate(tokens) if token == word] # 仅当词条在当前文件中存在时存储 if pos_list: if word not in result_dict: result_dict[word] = [] result_dict[word].append({filename: pos_list})
效果验证
执行print(result_dict['apple'])即可输出你要求的格式:[{'file1.txt': [1]}, {'file2.txt': [1,4]}, ...... ]
注意说明
- 你原有代码的
check = file_contents存在逻辑错误,取到的是所有文件的分词内容,不是当前遍历到的单个文件内容,本身无法正确做存在性判断 - 使用
zip同步遍历两个列表比range(len())写法更简洁,也不会出现下标取值错误的问题 - 无需额外做去重处理,每个文件只会遍历一次,不会重复存入相同文件的记录
内容的提问来源于stack exchange,提问作者David R
相关产品推荐
相关产品推荐

