Коли ви переходите lambdaдо sort, вам потрібно повернути ціле число, а не булеве значення. Тож ваш код повинен замість цього читати так:
xs.sort(lambda x,y: cmp(len(x), len(y)))
Зауважте, що cmp - це вбудована функція, яка cmp(x, y)повертає -1, якщо xменше y, 0, якщо xдорівнює y, а 1, якщо xбільше, ніж y.
Звичайно, ви можете замість цього використовувати keyпараметр:
xs.sort(key=lambda s: len(s))
Це говорить про sortспосіб замовлення на основі того, що повертається ключова функція.
EDIT: Завдяки balpha та Руслану нижче за те, що вони вказали, що ви можете просто передати lenбезпосередньо як основний параметр функції, тим самим усуваючи необхідність у lambda:
xs.sort(key=len)
І як вказує Руслан нижче, ви також можете використовувати вбудовану впорядковану функцію, а не list.sortметод, який створює новий список, а не сортування існуючого на місці:
print(sorted(xs, key=len))
lambda; просто використовуйтеkey = len