我不确定这种技术的术语。我想创建一个列表,如果我尝试访问列表范围之外的元素,该列表将“自行循环”。我想要实现的行为示例:

>>> musical_scale = ['C', 'D', 'E', 'F', 'G', 'A', 'B']
>>> musical_scale[2]
E
>>> musical_scale[7]
C
>>> musical_scale[-1]
B

我想我可以写一个这样做的类,但我认为可能有更正确的方法来做到这一点。

最佳答案

使用模数运算符 % 在索引超过列表末尾后“循环返回”

>>> musical_scale = ['C', 'D', 'E', 'F', 'G', 'A', 'B']

def getValue(x, l):
    return l[x % len(l)]

>>> getValue(0, musical_scale)
'C'
>>> getValue(9, musical_scale)
'E'

关于python - list[n] 如何指向 list[0]?获取不按顺序的项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25407416/

10-12 21:13