Python 如何使这个for循环在任何索引处删除字典?

Python 如何使这个for循环在任何索引处删除字典?,python,for-loop,enumerate,Python,For Loop,Enumerate,我将如何使这段代码用于删除PlayerID列表中的播放器词典在任何索引中删除词典 for index, Player in enumerate(PlayerID): if Player['ID'] == SearchID: PlayerID.pop(index) print("The user with ID", SearchID, ", has been deleted") break else: print("The ID provided does not

我将如何使这段代码用于删除PlayerID列表中的播放器词典在任何索引中删除词典

for index, Player in enumerate(PlayerID):
if Player['ID'] == SearchID:
    PlayerID.pop(index)
    print("The user with ID", SearchID, ", has been deleted")
    break
else:
    print("The ID provided does not exist.")

每当我在这个列表上存储了多个字典,所有字典都有不同的ID时,它似乎只是说与第一个索引相关联的ID存在,而其他字典则会提示错误消息,如“else”语句中所示。您在迭代时更改列表,这不是一个好习惯用法

您可以在for循环上使用else语句:

我估计您的列表是这样的:
[{'id':3}{'id':7}{'id':6}]

def remove_player(player_id, player_list):
    for idx in xrange(0, len(player_list)):
        if player_id == player_list[idx]['id']
            player_list.pop(idx)
            print("The user with ID", player_id, ", has been deleted")
            break
    else:
        print("The ID provided does not exist.")

请注意,只有循环正常完成(无中断)时,才会执行else。

是否有人可以帮助解决此问题?