我想創建一個函數,對於列表的每個成員,返回該成員的值和它的任何一側的值的數量。唯一的問題是,它具有「環繞」,當它在列表如何在索引上使用模塊化算術?
例如的開頭或結尾:
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