remove方法缺陷補全:續《列表數據清洗遇到問題的記錄——set用法和remove方法的缺陷》

remove方法缺陷補全:續《列表數據清洗遇到問題的記錄——set用法和remove方法的缺陷》

一、問題

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循環就來了四次,怕其他數據清洗時存在問題

之後就清理乾淨了
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章