2013-05-20 43 views
3

如果我有一个切片对象Python的迭代切片对象

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

+0

@Blender什么数组(列表)? 'n'?这只是一个应该停止的数字,可能最好解释为列表的长度,尽管不一定。 – Lucas

回答

11
def FUNCTION_I_WANT(s, n): 
    return range(*s.indices(n)) 
+0

啊哈,这就是它应该如何工作。这并不明显;) – Lucas