Is There A Cleaner Way To Use A 2 Dimensional Array?
I'm trying to make a 2D array class, and ran into a problem. The best way I could figure out to do it was to pass get/setitem a tuple of the indices, and have it unpacked in the fu
Solution 1:
There are a couple ways you can do this. If you want syntax like test[1][2], then you can have __getitem__ returns a column (or row), which can be indexed again with __getitem__ (or even just return a list).
However, if you want the syntax test[1,2], you are on the right track, test[1,2] actually passes the tuple (1,2) to the __getitem__ function, so you don't need to include the parantheses when calling it.
You can make the __getitem__ and __setitem__ implementations a little less messy like so:
def__getitem__(self, indices):
i, j = indices
return (self.data[i], self.data[j])
with your actual implementation of __getitem__ of course. The point being that you have split the indices tuple into appropriately named variables.
Post a Comment for "Is There A Cleaner Way To Use A 2 Dimensional Array?"