簡體   English   中英

如何打印不在列表中的單詞

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM