簡體   English   中英

Python不在列表中時從列表中刪除項目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM