我有一个脚本,可以跟踪每个球队在篮球比赛中的阵容,最终目标是跟踪加/减阵容(对阵对手的每个不同阵容)。因此,当我在数据帧中进行迭代时,我有一个列表可以跟踪对手的阵容(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)将不起作用并抛出错误。这是怎么回事?
答案 0 :(得分:0)
您是否在for循环迭代的同一范围内打印opp_lineup
?在您尝试从中删除某些内容之前,是否有任何地方重新定义opp_lineup
?您似乎正在尝试删除正确的str
,但您试图将其从错误的对象中删除。
答案 1 :(得分:0)
有两个问题:1)源数据中的错误和2)我更改的正则表达式中的错误,并且忘记了代码中较早删除的后缀。