Python迭代切片对象

Luc*_*cas 6 python iteration slice

如果我有一个切片对象

s = slice(a,b,c)
Run Code Online (Sandbox Code Playgroud)

和一个数组长度n,有一个很好的现成迭代器的元素,以便我可以做类似的事情:

for index in FUNCTION_I_WANT(s, n):
    do_whatever(index)
Run Code Online (Sandbox Code Playgroud)

让它表现得像切片列表,超越真正可怕的:

def HACKY_VERSION_OF_FUNCTION_I_WANT(s,n):
    yield range(n).__getitem__(s)
Run Code Online (Sandbox Code Playgroud)

Ign*_*ams 13

def FUNCTION_I_WANT(s, n):
  return range(*s.indices(n))
Run Code Online (Sandbox Code Playgroud)