python 查看元素是否在列表中

一般情況下,直接用in list就可以

但是昨天在工作的時候,發現當list過大的時候特別耗時間

例子:將dataframe中id在黑名單中的id都設置爲0

df['UserID'] = df['UserID'].apply(lambda x: 0 if x in black_people else x)

我做工作的時候黑名單有2w+,所以運行的時候差不多要1個小時,這樣顯然是不行的

後面突然想到

black_people = set(black_people)

不僅可以提高速度還可以刪除同類項

並且修改過後的執行速度只要1-2秒

後面百度的時候發現set還針對是否存在這個問題進行過優化,所以

當判斷元素是否在列表中的時候,先將列表轉換成set!!!!

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