for x,y in words:
for z in x:
if z in stopwords:
del x[x.index(z)]
這是我的代碼。在字的數據是元組的列表,其中一個元組看起來是這樣的:del似乎沒有從列表中刪除任何東西
(list of words, metadata)
我的代碼的目的是從單詞的列表中刪除所有的禁用詞。 唯一的問題是,停用詞不會被刪除後...
我究竟做錯了什麼? 我已經嘗試過用
x.pop(x.index(z))
做到這一點,但似乎不有所作爲。
stopwords = set(stopwords) # just so "in" checks are faster
result = [([word for word in x if word not in stopwords], y) for x, y in words]
例如:
>>> stopwords = ['stop']
>>> words = [(['hello', 'you', 'stop'], 'somemeta')]
>>> stopwords = set(stopwords) # just so "in" checks are faster
>>> result = [([word for word in x if word not in stopwords], y) for x, y in words]
>>> result
[(['hello', 'you'], 'somemeta')]
請注意,您一般不應該修改的列表,你」
迭代時從列表中刪除數據不是一個好主意,並且很可能會產生未定義的行爲。相反,我會嘗試將您的問題列爲理解,並創建一個符合您的標準的新列表。 –
請給出一個單詞和停用詞的例子 – nacho