Python从列表中删除项目(如果在其他列表中)

2024-09-27 00:18:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经将一些数据标记为字符串,并将其附加到两个单独的列表中

我想从名为list_creatures_BP的列表中删除一个item(而item可以包含多次),如果它存在于另一个名为list_bosses_BP的列表中

这是我的代码:

# append creatures to creatures list
for creatue in result_creatures_bp:
    list_creatures_BP.append(creatue.text)


# append bosses to bosses list
for boss in result_bosses_bp:
    list_bosses_BP.append(boss.text)


# delete bosses from creatures list
for item in list_creatures_BP:
    if item in list_bosses_BP:
        while item in list_creatures_BP:
            list_creatures_BP.remove(item)

但该项目仍然存在于两个列表中

我错过了什么


Tags: totextin列表forresultitemlist
1条回答
网友
1楼 · 发布于 2024-09-27 00:18:52

我猜你的意思是:

newlist = []
for item in list_creatures_BP:
    if item not in list_bosses_BP:
        newlist.append(item)

或者只是:

newlist = [item for item in list_creatures_BP if item not in list_bosses_BP]

代码不起作用的原因是:

  • 您有一个带有remove的while循环,remove在循环中的行为异常,它将始终右移,并且会错误地修改列表

相关问题 更多 >

    热门问题