我在Python中使用nltk庫;我的背景是Java。我不明白我寫的代碼的控制檯輸出。儘管初始化變量tokens
作爲列表,爲什麼Python會返回一個奇怪的形式。爲什麼輸出不打印列表?
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords
import nltk
def tokenize_sentence(sentence):
tokens=[]
tokens = word_tokenize(sentence)
tokens = (word for word in tokens if word not in \
set(stopwords.words('english')))
return tokens;
a="John is an actor."
print(tokenize_sentence(a))
輸出:
<generator object tokenize_sentence.<locals>.<genexpr> at 0x10dc5b1a8>
我看到這個輸出類似於當我嘗試打印是沒有定義的toString()方法的對象是什麼的Java做一些事情。
圓括號內的理解會創建一個生成器*,而不是一個列表*。改用'[]'代替'()'用'tokens'或者調用'list(tokenize_sentence(a))'代替。 –
它不會打印列表,因爲'tokens'不是一個列表。 – user2357112
@JimFasarakisHilliard的建議都起作用。謝謝 – AV94