若一个列表是循环的,当需要将当前索引左右切换至上一个/下一个时。就需要做这样的转换。
虽然当索引越界时,可以用 if ,但有些丑,用一个算式即可。
(#list 代表列表长度,列表索引从1开始)
1、左切至前一个(将 x - 1 转到标准值):
y=((x - 1) + (#list - 1)) % #list + 1
如,1,2,3,4,5,6,7 减一后 变为 7123456
2、右切至下一个(将 x + 1 转到标准值)
y=(x + 1) % #list
如,1,2,3,4,5,6,7 加一后 变为 2345671