从多对多中删除所选项目时,循环会跳过第二个项目

Loop skips every second item when removing selected items from many to many

在我的应用程序中,我试图通过循环删除多对多记录:

org = current_user.Organization
for item in org.items:
        if item.id in remove_ids:
            org.items.remove(item)
db.session.commit()

但是,它会跳过第二个项目。由于列表在循环中被修改。我该如何正确解决?

在循环中从容器中移除元素通常不起作用。

我会建议以下内容:

org = current_user.Organization
org.items = [item for item in org.items if item.id not in remove_ids]
db.session.commit()