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