有一个列表或str,如下所示:
value[4]
使用i = 4 16
进行索引会给我'r'。
如何将我的索引编制为使用较大(无限范围)值(如40
)来获取'r',或{{1}}使用'W'?
答案 0 :(得分:3)
你可以使用模数:
>>> value = "Water"
>>> value[16 % len(value)]
'a'
>>> value[40 % len(value)]
'W'
答案 1 :(得分:1)
我认为你应该使用余数运算符:
>>> value = 'Water'
>>> value[16%len(value)]
'a'
>>> value[40%len(value)]
'W'
答案 2 :(得分:1)
这是一个itertools
解决方案,但它并不漂亮......
>>> import itertools
>>> value = 'Water'
>>> next(itertools.islice(itertools.cycle(value), 16))
'a'
>>> next(itertools.islice(itertools.cycle(value), 40))
'W'
itertools.cycle
将无限重复您的输入可迭代(在这种情况下为'Water'
)。 itertools.islice
允许您将可迭代切片为list
。调用next
一次只返回切片中的第一个值。