Python:获取上一个列表条目(相对于分配给当前列表位置的变量)

标签 python list iterable

我正在用 Python 编写一个非常简单的基于文本的游戏,其中包含 5 个玩家可以在其中移动的房间。

玩家从中央房间 gameMap[2] 开始。

下面是提供玩家位置的代码。

gameMap = ['room0','room1','room2','room3','room4']

playerLocation = gameMap[2]

现在假设玩家想要向左移动。 这意味着我必须将playerLocation分配给gameMap[1]

playerLocation = gameMap[1]

只有 5 个房间,这可以相当容易地完成。但出于缩放目的,我希望能够将playerLocation分配给“当前列表条目-1”,假设这在范围内。

该指令将进行如下分配:

如果playerLocation是gameMap[4],则playerLocation = gameMap[3]
如果playerLocation是gameMap[1],则playerLocation = gameMap[0]

我考虑过使用 next(gameMap) 但这似乎存在两个问题:
1) 它不允许我引用玩家的当前位置,因为它必须从 gameMap[0]
开始 2)它似乎不能反向工作,并且there doesn't seem to be a previous() function由于Python的架构。 (抱歉,如果我在这里用错了术语:)。

我到处找过,但似乎找不到任何方法来做到这一点。是否可以?

最佳答案

在这种情况下你可以做的是有一个变量用作玩家所在的点;例如:

当前 = 0

然后进行必要的计算并调用 playerLocation = gameMap[current]

如果您想返回一个级别,您可以这样做:

当前 -= 1

playerLocation = gameMap[当前]

我不确定我是否遗漏了你问题的一部分,因为这看起来相对简单;如果我理解错误请纠正。

关于Python:获取上一个列表条目(相对于分配给当前列表位置的变量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60668676/

相关文章:

java - 我的 Comparable 实现出了点问题

python - 从可迭代的点生成路径

python - Patterns() 函数如何在 django.conf.urls 包中可用?

python - 通过python脚本在MySql中插入文本数据时处理空数据

python - 无法附加到剪贴板

c - 错误的实现使用哈希表搜索记录。未找到结果?

java - 如何根据项目的主序列列表对一小部分项目进行排序?

list - Scala从元组列表中删除元素

python - Python 中的重定向打印 : val = print(arg) to output mixed iterable to file

python - 数据框中所有值的频率分布