从字典中删除值


players = {
"nome": "",
"score": [] 
}
cancel = False
player_list = []
while (True):
name = input("Insert player name: ")
player_list.append({
"Player Name": name
})
cont = input("Do you wish to add another player? (Y/N)")
if cont == "N":
break;
print("Player List: ", player_list)
while (True):
eliminate_player = input("Select player to delete: ")
player_list.pop({
"Player Deleted": eliminate_player
})    
print ("Updated List", player_list)

大家好!我在使用用户输入从我的玩家列表中删除条目时遇到一些问题。我收到错误:"dict"对象无法解释为整数,但我似乎找不到问题所在,因为我使用与我用来添加播放器的类似方法并且效果很好。

有什么想法吗?

使用.remove()而不是.pop()。那里的字典必须与列表中的字典具有相同的结构。

player_list.remove({"Player name": eliminate_player})

pop()将索引作为参数。您可以改用remove()

您没有使用正确的方法。pop(n)需要一个整数(索引(才能从列表中删除给定的索引。您应该使用remove().

remove()是一个内置函数,用于从列表中删除给定对象。它不返回任何值。

Syntax:
list_name.remove(obj) 

试试这个:

player_list.remove({"Player name": eliminate_player})

如果该元素不存在,则会抛出ValueError: list.remove(x): x not in list exception.在 Python 中将其包装在try catch子句中。

注意:

remove()从列表中删除对象的第一个匹配项。

要删除播放机的所有匹配项,请执行以下操作:

while (player_list.count({"Player name": eliminate_player})): 
player_list.remove({"Player name": eliminate_player}) 

请参阅此内容以了解列表上的弹出、删除和 del 之间的区别。

删除一个玩家后如何停止它,然后显示更新的列表?

您可以使用count方法中断 while 循环:

while (True):
eliminate_player = input("Select player to delete: ")
di = {"Player name": eliminate_player}
if player_list.count(di):
player_list.pop(di)
break    

相关内容

  • 没有找到相关文章

最新更新