[英]How to print words that are not in the list
我有 2 個文件,第一個是推文列表。 第二個是標准單詞列表,如下所示:
acoustics
acquaint
acquaintable
tbc....
我想遍歷推文列表並打印在標准單詞列表中找不到的單詞。
這是我試過的:
dk = open('wordslist.txt','r')
dlist = []
for x in dk.readlines():
dlist.append(x.replace('\n',''))
dlist
length = len(tokenized_tweets)
for i in range(length):
print(tokenized_tweets[i])
for x in range(len(tokenized_tweets)):
if x[0] not in dlist:
print(tokenized_tweets[x])
我收到了這個錯誤: 'int' object is not subscriptable
閱讀並按照錯誤消息進行操作,然后您就會找出問題所在。
在回溯中,您會看到一個箭頭指向for x in (len(tokenized_tweets)):
的行。 錯誤消息說: 'int' object is not iterable
。 你在那個for
循環中的可迭代對象是什么? (len(tokenized_tweets))
這真的是可迭代的嗎? 不,它是一個int
。 len()
的 output 始終是一個int
(除非你覆蓋它)。
您應該將tokenized_tweetes
的長度傳遞給range()
object。它是一個可迭代對象。
由於您要為每條推文查找詞語,因此set
您的詞語組合起來。 Set 的成員測試比 list 快很多。 (O(1) > O(n))
它還會刪除重復項(如果有)。
with open("wordslist.txt") as f:
words_list = {word.removesuffix("\n") for word in f}
with open("tweets.txt") as g:
for tweete in g:
for word in tweete.split():
if word not in words_list:
print(word)
簡單地使用這個,你錯過了寫作range
for x in range(len(tokenized_tweets)):
if x[0] not in dlist:
print(tokenized_tweets[x])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.