hello everyone, I'm new here :-) sometimes I want to iterate a part of a sequence. but don't want to copy it. i.e.
a = list(...) # now a is a list, and a[:] is another list, and so a[m:n] # now we do something with the 0~len(a)-3 elements of a for val in a[:-2]: #do something.... but, this will cause a copy on a, has some convenience way to get a iter to iterate on a part of list? i made this: class iterslice: def __init__(self, list): self.list = list def __len__(self): return len(self.list) def __getitem__(self, slice): import itertools listlen = len(self.list) range = (((slice.start + listlen) % listlen) if slice.start else 0, ((slice.stop + listlen) % listlen) if slice.stop else listlen, slice.step) return itertools.islice(self.list, *range) a = [1,2,3,4] for i in iterslice(a)[:-1:2]: print i my question is: - are there any *Standard* way to do this? (a buit-in function? a module?) - are there any better implements? thanks for attention :-) -- http://mail.python.org/mailman/listinfo/python-list