Python迭代切片对象

7
如果我有一个切片对象
s = slice(a,b,c)

如果我有一个数组 n 的长度,是否有一个方便的已有迭代器来遍历元素,以便我可以做像这样的事情:

for index in FUNCTION_I_WANT(s, n):
    do_whatever(index)

同时让其表现为列表的切片,而不是像列表一样使用非常糟糕的方式:

def HACKY_VERSION_OF_FUNCTION_I_WANT(s,n):
    yield range(n).__getitem__(s)

2
我不确定你的问题是什么。这个函数应该做什么?数组(列表?)与切片对象有什么关系? - Blender
@Blender 什么数组(列表)?n?那只是一个数字,表示它应该停止的位置,可能最好解释为列表的长度,但不一定。 - Lucas
1个回答

15
def FUNCTION_I_WANT(s, n):
  return range(*s.indices(n))

1
啊哈,这就是它应该工作的方式。这并不明显 ;) - Lucas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接