一旦列表被删除,你能减少它的索引吗?

2024-04-28 14:09:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个类似于“地板是熔岩”游戏的代码 有一个包含每个人生命的列表,但我需要减少与玩家是否出局相对应的索引:

lives = [5 for x in range(players)]

有一个变量可以为谁出局列出“是”或“否”:

outers = list(input("Input a list of yes or no for who is out: "))

执行以下代码无效:

for x, y in zip(outers, lives):
    if x == "yes":
        lives[y] -= 1

有人能帮忙吗。你知道吗


Tags: 代码in游戏列表for玩家rangelist
2条回答

这是^{}的一个很好的用例:

lives = [5, 5, 5, 5, 5]
outers = ['yes', 'no', 'yes', 'yes', 'no']
lives = [i-1 if j == 'yes' else i for i,j in zip(lives, outers)]

输出:

>>> lives = [5, 5, 5, 5, 5]
>>> outers = ['yes', 'no', 'yes', 'yes', 'no']
>>> lives = [i-1 if j == 'yes' else i for i,j in zip(lives, outers)]
>>>
>>> lives
[4, 5, 4, 4, 5]
>>>

你的问题来自这样一个事实:y是生命的一个元素,而不是一个指数。你知道吗

我相信

for k in range(len(outers)):
    if outers[k]=="yes":
        lives[k]-=1

会给你想要的

相关问题 更多 >