Python 如何使这个for循环在任何索引处删除字典?
我将如何使这段代码用于删除PlayerID列表中的播放器词典在任何索引中删除词典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
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。是否有人可以帮助解决此问题?