超出范围时的翻滚指数(Python 3)

2024-04-20 08:08:22 发布

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

我试图访问一个正方形2D列表中的相邻元素(上、下、左、右)。但是,当我正在查看的元素位于2D列表的“边缘”时,它将尝试访问不存在的列表索引。下面是我使用的代码:

surroundings = [
                my_2D_array[currentY+1][currentX],
                my_2D_array[currentY-1][currentX],
                my_2D_array[currentY][currentX+1],
                my_2D_array[currentY][currentX-1]
]

如何让它“滚动”,所以在一个包含3个项的列表l中,它不是抛出访问l[3]的错误,而是直接访问l[0]?你知道吗


Tags: 代码元素列表my错误array边缘正方形
1条回答
网友
1楼 · 发布于 2024-04-20 08:08:22

执行“翻滚”或“环绕”的最佳方法是使用模量:

>>> x = [1, 2, 3]
>>> x[3 % len(x)]
1
>>> 3 % len(x)  # 3 % 3 is 0
0

如果您100%确定列表的长度是恒定的,只需将右侧的模数值硬编码到代码中:

x[index % 3]

这是因为你可以把模数描述为从LHS数中去掉尽可能多的RHS数的倍数,返回剩下的值。因此,x % y返回(floor)除以x后的余数。你知道吗

相关问题 更多 >