iteritems
(dict
)이 유용 할 수 있습니다.목록의 조각에있는 이터 아이템
때때로 iteritems
는 목록의 조각에 유용 다음과 같이 구현 (조잡)가 될 수 있습니다
import itertools
class List(list):
def iteritems(self, slice=None):
if slice is None: return enumerate(self)
else: return itertools.izip(range(slice.start,slice.stop,slice.step), self[slice])
if __name__ == "__main__":
l=List("hAnGtEn")
print l
print list(l.iteritems())
print list(l.iteritems(slice(1,7,2)))
출력 :
['h', 'A', 'n', 'G', 't', 'E', 'n']
[(0, 'h'), (1, 'A'), (2, 'n'), (3, 'G'), (4, 't'), (5, 'E'), (6, 'n')]
[(1, 'A'), (3, 'G'), (5, 'E')]
좀 더 "파이썬"목록 슬라이스 구문이 있나요 그걸 사용해야합니까?
p.s.
range(slice.start,slice.stop,slice.step)
은 매우 특별한 경우를 잘 처리하지 못합니다. 여기서는 stop=-1
, start=None
또는 step=None
입니다. 예제 범위/슬라이스 구현도 어떻게 향상시킬 수 있습니까?
작업 코드 개선에 대한 토론은 codereview.stackexchange.com에 속합니다. – chepner
참고 : 다음 주소로 다시 게시 : http://codereview.stackexchange.com/questions/70959/iteritems-on-a-slice-of-a-python-list – NevilleDNZ