On Sat, Jan 23, 2010 at 12:57 PM, thinke365 <span dir="ltr"><<a href="mailto:thinke365@gmail.com">thinke365@gmail.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

def sort_by_list(E1, E2):<br>
    print len(E1), len(E2)<br>
    return len(list(E1)) > len(list(E2))<br>
<br>
l.sort(cmp=sort_by_list)<br></blockquote><div><br></div><div>The cmp function is defined as returning one of three values, -1, 0 and 1.</div><div><br></div><div>You are returning true or false, so things aren't getting sorted because you're not giving cmp what it is looking for. You could rewrite that as return cmp(len(list(E1)), len(list(E2))) if you want. However, cmp is going away in Py3.</div>

<div><br></div><div>You can just do, instead:</div><div><br></div><div>l.sort(key=len)</div><div><br></div><div>And you'll get precisely what you're looking for.</div><div><br></div></div><div name="mailplane_signature">

--S</div>