[英]How to get word by word from a string?
為了進行情感分析,我想分析一個句子中的每個單詞。 我想將每個單詞存儲在變量中,然后進行處理。 我使用以下代碼,但收到一條錯誤消息:
屬性錯誤:“列表”對象沒有屬性“分割”
line = ' hello this is a test sentence'
while line:
line=line.split(' ')
print '\n'
以上問題的解決方案是什么?
這是您的代碼中發生的事情:
line = "..."
-line是一個字符串 while line:
-開始循環,因為非空字符串的值為True
line = line.split(" ")
-按空格split
line
, line
現在是一個列表 print '\\n'
n'-打印換行符 while line:
-非空列表評估為True
,因此再次循環 line = line.split(" ")
- line
是一個列表,因此AttributeError
我不確定為什么while
這里使用while
循環,您可能想要:
for word in line.split(" "):
print word
# ... process word
這里的問題實際上是當循環達到其第二個迭代行時不再是字符串。 因此邏輯上說是對象行不是None(如果是),請在其上運行split。 但是,現在這行是一個列表。 你真正想要的是
line = 'hello this is a sentance'
words = line.split()
for w in words:
print w
有兩種方法:
string.split(' ') ?
>>> a="1.MATCHES$$TEXT$$STRING"
>>> a.split("$$TEXT$$")
['1.MATCHES', 'STRING']
>>> a="2.MATCHES $$TEXT$$ STRING"
>>> a.split("$$TEXT$$")
['2.MATCHES ', ' STRING']
和:
>>> [x.strip() for x in "2.MATCHES $$TEXT$$ STRING".split("$$TEXT$$")]
['2.MATCHES', 'STRING']
因此,最妙的是您不必循環,您必須分配它並使用它。
a="my;string;here"
a = a.split(";")
for w in a:
print w
只需將字符串拆分一次: wordList = line.split()
並使用wordList進行迭代:
for x in wordList:
doWork...
ps:我不太明白為什么要在循環的每次迭代中打印換行符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.