On 1/23/2010 3:57 PM, thinke365 wrote:
l = list() l1 = list((1, 2, 3, 4)) l2 = list((1,2)) l3 = list((1, 2, 3, 4, 5)) l.append(l1) l.append(l2) l.append(l3) print l def sort_by_list(E1, E2): print len(E1), len(E2) return len(list(E1))> len(list(E2)) l.sort(cmp=sort_by_list) print l output: [[1, 2, 3, 4], [1, 2], [1, 2, 3, 4, 5]] 2 4 5 2 [[1, 2, 3, 4], [1, 2], [1, 2, 3, 4, 5]] the order of the elements in the list did not change!
Here is what is right! >>> l = [ (1,2,3), (1,2), (1,2,3,4,5), () ] >>> l.sort(key=len) >>> l [(), (1, 2), (1, 2, 3), (1, 2, 3, 4, 5)] The cmp param is gone in 3.x in favor of key. Use the latter. Terry Jan Reedy -- http://mail.python.org/mailman/listinfo/python-list