"Martin v. Löwis" <[EMAIL PROTECTED]> writes: >> def comp(x1, x2): >> try: >> if x1<x2: >> return -1 >> else: >> return 1 >> except TypeError: >> if str(x1)<str(x2): >> return -1 >> else: >> return 1 >> > > Please correct me if I'm wrong, but I think this is not transitive. If > strings and ints are uncomparable, this will give you 20 < "5" and > "5" < 8, but not 20 < 8. As a result, quicksort will do nonsense > with that comparison function (i.e. it won't guarantee that things > are sorted in increasing order)
Even in 2.x it doesn't work (I think I posted this earlier but I'm not sure anymore) as this example shows: 2 < 3j and 3j < True, but True < 2 -- Arnaud -- http://mail.python.org/mailman/listinfo/python-list