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