On 5/9/2011 8:44 PM, Algis Kabaila wrote:

The method of double indexing in the manner
a[i][j]
for the (i, j) -th element of multi-dimensional array is well known and
widely used. But how to enable the "standard" matrix notation
a[i, j]
in Python 3.2 in the manner of numpy (and other matrix packages)? Is it
subclassing of "special methods"

__getitem__() # to get

__setitem__()  # to set

Yes.

class listwrap:
    def __init__(self, lis):
        self._list = lis
    def __getitem__(self, dex):
        i,j = dex
        return self._list[i][j]
    # __setitem__: exercise for reader

l = listwrap([[1,2,3],['a','b','c']])
print(l[0,2],l[1,0])
# 3 a

IMO, Hardly worth it for two dimensions.
--
Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to