Python在列表中没有从列表中删除项目

时间:2016-02-16 03:42:16

标签: python list pandas

我有一个脚本,可以跟踪每个球队在篮球比赛中的阵容,最终目标是跟踪加/减阵容(对阵对手的每个不同阵容)。因此,当我在数据帧中进行迭代时,我有一个列表可以跟踪对手的阵容(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)将不起作用并抛出错误。这是怎么回事?

2 个答案:

答案 0 :(得分:0)

您是否在for循环迭代的同一范围内打印opp_lineup?在您尝试从中删除某些内容之前,是否有任何地方重新定义opp_lineup?您似乎正在尝试删除正确的str,但您试图将其从错误的对象中删除。

答案 1 :(得分:0)

有两个问题:1)源数据中的错误和2)我更改的正则表达式中的错误,并且忘记了代码中较早删除的后缀。