Saat Anda meneruskan lambdake sort, Anda harus mengembalikan integer, bukan boolean. Jadi kode Anda seharusnya terbaca sebagai berikut:
xs.sort(lambda x,y: cmp(len(x), len(y)))
Perhatikan bahwa cmp adalah fungsi bawaan yang cmp(x, y)mengembalikan -1 jika xkurang dari y, 0 jika xsama dengan y, dan 1 jika xlebih besar dari y.
Tentu saja, Anda dapat menggunakan keyparameter:
xs.sort(key=lambda s: len(s))
Ini memberi tahu sortmetode untuk memesan berdasarkan apa pun yang dikembalikan oleh fungsi kunci.
EDIT: Terima kasih kepada balpha dan Ruslan di bawah ini karena telah menunjukkan bahwa Anda bisa lenlangsung meneruskan sebagai parameter kunci ke fungsi, sehingga menghilangkan kebutuhan akan lambda:
xs.sort(key=len)
Dan seperti yang ditunjukkan Ruslan di bawah ini, Anda juga dapat menggunakan fungsi terurut bawaan daripada list.sortmetode, yang membuat daftar baru daripada menyortir yang sudah ada di tempat:
print(sorted(xs, key=len))
lambda; cukup gunakankey = len