관련 게시물을 보았지만이 질문은 아닙니다. 루프에서 next()를 호출하지 않고 외부 루프에서 반복자를 빨리 감을 방법을 찾고있다.Dropwhile를 사용하여 중첩 루프에서 xrange를 빨리 감기 하시겠습니까?
대답은 단순히 내부 루프에서 동일한 반복기를 사용하는 것이지만 itertools와 좋은 방법이있을 것이라고 생각했지만 dropwhile()를 사용하지만 예상 한대로하지 않습니다.
cl = ['a', 'b', 'c', 'd', 'e']
rangeiter = xrange(0, len(cl))
for x in rangeiter:
print('{}-'.format(x)),
for y in xrange(x, len(cl)):
print('{}'.format(cl[y])),
if y == 3:
print
break
# fast forward parent range
rangeiter = dropwhile(lambda v: v < y, rangeiter)
내가 외부 루프는 내부 루프가 처리 한 모든 인덱스 건너 뛰고 싶은 :
그래서 루프 내부 루프를 갖는다. 나는 dropwhile이 작업을 수행 한 것이라고 생각하지만, 대신에 나는 점점 오전 :
0- a b c d
1- b c d
2- c d
3- d
4- e
내가
0- a b c d
4- e
를 원하는 경우.
감사합니다.
'xrange'는 반복자가 아닙니다. * sequence * (iterable 일 뿐이다)이다. 'for' 루프는 iter (iterable)로 iterator를 생성합니다. 알았어. –
. 나는 xrange 에뮬레이션을하고 iterator를 it 's라고 가정했다. (나는 실제로 generator를 원했다.) 내부 카운터를 향상시킬 수있는 방법이 있습니까? – Colin
'람다 : v