如何打印不在标准词表中的推文词汇?
问题解决:找出推文列表中不在标准词表的词汇
错误原因
最后一段代码的核心问题:for x in range(len(tokenized_tweets))循环里,x是整数类型的索引值,你尝试用x[0]访问它的下标——整数没有下标属性,因此触发'int' object is not subscriptable(整数对象不可下标访问)的错误。
修正后的代码方案
1. 优化标准词表读取(用集合提升查询效率)
# 读取标准词表并转为集合,集合的成员查询速度远快于列表 with open('wordslist.txt', 'r') as dk: word_set = {line.strip() for line in dk.readlines()}
注:with语句会自动关闭文件,比手动open更安全;strip()会同时去掉换行符和首尾空白,比单独replace('\n')更全面。
2. 遍历推文列表,筛选目标词汇
方式一:直接遍历元素(最简洁)
for word in tokenized_tweets: if word not in word_set: print(word)
方式二:保留索引遍历(需用到索引的场景)
for idx in range(len(tokenized_tweets)): current_word = tokenized_tweets[idx] if current_word not in word_set: print(current_word)
原错误代码的问题拆解
原代码最后一段逻辑错误:
for x in range(len(tokenized_tweets)): if x[0] not in dlist: # x是整数,x[0]属于非法操作 print(tokenized_tweets[x])
这里误把索引x当成了推文里的词汇,正确逻辑应该是先通过索引拿到对应词汇tokenized_tweets[x],再和词表做对比。
内容的提问来源于stack exchange,提问作者Zulfi A
相关产品推荐
相关产品推荐

