[英]Python not removing item from list when it's in list
我有一個腳本,可以逐場跟蹤每個球隊的陣容,最終目標是按照陣容追蹤正負(針對來自對手的每個獨特陣容)。 因此,當我遍歷數據幀時,我有一個跟蹤對手陣容的列表(opp_lineup)和一個子輸出列表(opp_subouts)。 這是代碼:
if opp_subouts:
for opp_player in opp_subouts:
opp_lineup.remove(opp_player)
opp_subouts = []
在一定程度上進行游戲之前,我在此腳本上取得了成功。 列表中的最后一個項目給我一個錯誤(並且現在在其他逐個播放中),說它在opp_lineup中不存在。
我將此代碼放在for循環中以解決問題:
print(opp_player)
print(opp_lineup)
print(opp_player == opp_lineup[-1])
這是輸出:
#31 NIANGANE
['#04 MCBRIDE', '#11 EFIANAYI', '#20 NELSON', '#21 AHOLODE', '#24 IVEY', '#31 NIANGANE']
True
因此,盡管兩個字符串相等,但list.remove(x)無法正常工作並引發錯誤。 這里發生了什么?
您是否從與for循環相同的作用域中打印opp_lineup
? 在嘗試刪除opp_lineup
之前,是否有任何地方需要重新定義它? 似乎您正在嘗試刪除正確的str
但是您正在嘗試從錯誤的對象中刪除它。
有兩個問題:1)源數據中的錯誤,以及2)我更改並忘記了代碼前面刪除的后綴的正則表達式中的錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.