Clean\u数据是一个包含9000多个文本文件的列表。规则是包含超过500个元素的字典列表。下面是规则列表
rules = [{'id': 1, 'kwd_root': 'add', 'kwd_sub': 'price target', 'word_count': 5, 'occurance': 1, 'kwd_search': 1, 'status': 1}, {'id': 2, 'kwd_root': 'add', 'kwd_sub': 'PT', 'word_count': 5, 'occurance': 1, 'kwd_search': 1, 'status': 1},.....]
我的问题是:我需要为干净的数据中的每个元素应用规则下表是我用过的密码
for word in clean_data:
for i,d in enumerate(rules):
if any(d['kwd_root'] in word and d['kwd_sub'] in word):
if abs(word.index(d['kwd_root']) - word.index(d['kwd_sub'])) <= d['word_count']:
research.append(word)
else:
non_research.append(word)
else:
non_research.append(word)
运行完这个代码后,我将len(non\u research)设置为110000,len(research)设置为5500
但len(non\u research)+len(research)的预期输出应该等于len(clean\u data)
谢谢
代码错误。另一方面,第3行使用需要列表作为参数的'any'。此外,研究/非研究为每个单词和每个条件添加一个值(单词x条件次数)。也许你可以使用:
相关问题 更多 >
编程相关推荐