1
我正在編寫一個函數,它將遍歷文本項目列表 - 解析每個項目,並將解析的項目追加到列表中。 的代碼如下:列表索引超出範圍 - 索引錯誤Python
clean_list = []
def to_words(list):
i = 0
while i <= len(list):
doc = list[i]
# 1. Remove HTML
doc_text = BeautifulSoup(doc).get_text()
# 2. Remove non-letters (not sure if this is advisable for all documents)
letters_only = re.sub("[^a-zA-Z]", " ", doc_text)
# 3. Convert to lower case, split into individual words
words = letters_only.lower().split()
# 4. Remove stop words
stops = set(stopwords.words("english"))
meaningful_words = [w for w in words if not w in stops]
# 5. Join the words back into one string separated by space, and return the result.
clean_doc = (" ".join(meaningful_words))
i = i+1
clean_list.append(clean_doc)
但是當我通過列表進入該功能,to_words(list)
,我得到這個錯誤:IndexError: list index out of range
我嘗試沒有技術上的定義to_words
功能,即避免了循環試驗,手動將i改爲0,1,2等,然後執行該功能的步驟;這工作正常。
爲什麼我在使用函數(和循環)時面臨這個錯誤?
你能在這裏給出完整的回溯嗎? –
長度爲5的列表具有索引'0,1,2,3,4'。 - 你的'而我<= len(列表)'給出'我'值'0,1,2,3,4,5'。將它改爲'while while
asongtoruin
也不要使用變量名'list',因爲這會導致與'list'對象類型混淆。 – asongtoruin