Neal Becker wrote: > Robert Kern wrote: > >> Neal Becker wrote: >>> I've never liked that python silently ignores slices with out of range >>> indexes. I believe this is a source of bugs (it has been for me). It >>> goes completely counter to the python philosophy. >>> >>> I vote to ban them from numpy. >>>>>> from numpy import array >>>>>> x = array (xrange (10)) >>>>>> x[11] >>> Traceback (most recent call last): >>> File "<stdin>", line 1, in <module> >>> IndexError: index out of bounds >>>>>> x[:12] = 2 >>>>>> x >>> array([2, 2, 2, 2, 2, 2, 2, 2, 2, 2]) >>>>>> len (x) >>> 10 >>> >>> Silently ignoring the error x[:12] is a bad idea, IMO. If it meant to >>> _extend_ x to have lenght 12, at least _that_ would be reasonable (but >>> I'm not advocating that position). >>> >>> I believe that out of bounds indexes should always throw IndexError. We >>> can't change that in Python now, but maybe we can in numpy. >> -1. Regardless of the merits if we had a blank slate, there is code that >> depends on this, specifically my code. It simplifies certain operations >> that would otherwise need tedious special case-handling. > > For example?
def ichunk(arr, chunk_size=10): for i in range(0, len(arr), chunk_size): yield arr[i:i+chunk_size] -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion