一、問題
remove方法缺陷:需要刪除的內容沒有辦法完全刪除
現象:見上一篇文章《列表數據清洗遇到問題的記錄——set用法和remove方法的缺陷》,鏈接: link.
上一次的可以通過set進行重複值剔除,但是此次不是重複值剔除,不能運用set方法,出現了剔除不乾淨
這次是我在進行jieba分詞的停用詞處理時遇到的問題,不能用set方法的重複值剔除。
如下,停用詞中加入了“本院”,
希望進行該詞的剔除,
原始代碼(部分):
for value in lst_words:
#print(lst_words)
if value in stop_word:
lst_words.remove(value)
下圖爲沒有進行刪除前的“本院”的數量,大致12個
下圖爲進行刪除的“本院”的剩餘數量爲3個
“本院”數量由12個變成了3個,可見remove方法進行了該詞的清除,但是沒有清除乾淨。
一開始沒有發現是remove方法的問題,認爲可能是某些“本院”這個詞語的格式有些不對,比如多了空格之類的,找了半天,發現沒有問題,這是纔想到了可能是remove的問題
二、解決方法
解決方法非常簡單,但是在上一篇用時沒有想到。既然一次清不乾淨就多清幾次,使用for循環
for i in range(3):
for value in lst_words:
#print(lst_words)
if value in stop_word:
lst_words.remove(value)
#本院沒有完全去掉,是否是remove導致的
index += 1
else:
pass
嘗試完全清楚大約要三次,for循環就來了四次,怕其他數據清洗時存在問題
之後就清理乾淨了