我想创建一个函数,对于列表的每个成员,返回该成员的值和它的任何一侧的值的数量。唯一的问题是,它具有“环绕”,当它在列表如何在索引上使用模块化算术?
例如的开头或结尾:
a = [0,1,2,3,4,5,6,7,8,9]
myfunc(a,2) # 2 indicates 2 either side
[8,9,0,1,2]
[9,0,1,2,3]
[0,1,2,3,4]
...
...
[6,7,8,9,0]
[7,8,9,0,1]
我可以计算出如何从索引2做,直到7 :
def myfunc(vals, rnge):
for i in range(0+rnge, len(vals)-rnge):
print vals[i-rnge:i+rnge+1]
但我不能解决当它需要环绕时如何处理。
谢谢,那正是我需要的!这样我可以避免重复我的列表 – guskenny83
这是一个新的列表len(vals)* 2 *范围时间。这是很多操作。 –
是的,但虽然我可能不会使用整段代码,但我可以使用defunc()中的循环来创建索引列表,以便我可以返回原始功能。 – guskenny83