On 25/05/2018 17:58, Rob Gaddi wrote:

So, in the spirit of explicit being better than implicit, please assume that for actual implementation replicate would be a static method of actual list, rather than the conveniently executable hackjob below.

_list = list
_nodefault = object()

class list(_list):
   @staticmethod
   def replicate(*n, fill=_nodefault, call=list):

That seems to work, but the dimensions are created in reverse order to what I expected. Which is to have the order of indices corresponding to the order of dimensions. So:

 x=list.replicate(2,3,4)

 print (len(x))
 print (len(x[0]))
 print (len(x[0][0]))

Gives output of 4, 3, 2 rather than 2, 3, 4.

Which means that x[0][0][3] is a bounds error.

--
bartc
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to