Thanks for the responses. > It seems to work with my Python2.4 here. If you're > interested in efficiency, I'll leave their comparison as an > exercise to the reader... :)
Ok, exercise complete! :) For the record, they are pretty much the same speed... >>> s = """ ... from collections import deque ... class mydeque(deque): ... def popmiddle(self, pos): ... self.rotate(-pos) ... ret=self.popleft() ... self.rotate(pos) ... return ret ... d = mydeque(xrange(1000000)) >>> timeit.Timer(stmt="x=d.popmiddle(1000)", setup = s).timeit(number=100000) 5.4620059253340969 >>> s2=""" ... from collections import deque ... class mydeque(deque): ... def popmiddle(self, pos): ... ret = self[pos] ... del(self[pos]) ... return ret ... d = mydeque(xrange(1000000)) ... """ >>> timeit.Timer(stmt="x=d.popmiddle(1000)", setup = s2).timeit(number=100000) 5.3937888754018104 Thanks for the alternative solution. Russ -- http://mail.python.org/mailman/listinfo/python-list