Rehceb Rotkiv escreveu:
> Hello everyone,
> 
> can I sort a multidimensional array in Python by multiple sort keys? A 
> litte code sample would be nice!

class MyList(list):
        # This is the index of the element to be compared
        CmpIndex=0

        # Comparision methods
        @staticmethod
        def __cmp_pars(x,y):
                if isinstance(x,MyList):
                        x=x[MyList.CmpIndex]
                if isinstance(y,MyList):
                        y=y[MyList.CmpIndex]
                return x,y
        def __cmp__(self,other):
                s,o=MyList.__cmp_pars(self,other)
                return cmp(s,o)
        def __lt__(self,other):
                s,o=MyList.__cmp_pars(self,other)
                return s<o
        def __le__(self,other):
                s,o=MyList.__cmp_pars(self,other)
                return s<=o
        def __gt__(self,other):
                s,o=MyList.__cmp_pars(self,other)
                return s>o
        def __ge__(self,other):
                s,o=MyList.__cmp_pars(self,other)
                return s>=o
        def __eq__(self,other):
                s,o=MyList.__cmp_pars(self,other)
                return s==o
        def __ne__(self,other):
                s,o=MyList.__cmp_pars(self,other)
                return s!=o

Use:

x=MyList(<list of lists>)
MyList.CmpIndex=2 # Compare by index 2
x.sort()

May be there is a better solution ...
HTH
Paulo
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to