Quando você passa um lambdato sort, você precisa retornar um inteiro, não um booleano. Portanto, seu código deve ser o seguinte:
xs.sort(lambda x,y: cmp(len(x), len(y)))
Observe que cmp é uma função embutida que cmp(x, y)retorna -1 se xfor menor que y, 0 se xfor igual a ye 1 se xfor maior quey .
Claro, você pode usar o keyparâmetro:
xs.sort(key=lambda s: len(s))
Isso diz ao sortmétodo para fazer o pedido com base no que quer que a função da tecla retorne.
EDITAR: Obrigado a balpha e Ruslan abaixo por apontar que você pode simplesmente passar lendiretamente como o parâmetro chave para a função, eliminando assim a necessidade de lambda:
xs.sort(key=len)
E, como Ruslan aponta abaixo, você também pode usar a função de classificação integrada em vez do list.sortmétodo, que cria uma nova lista em vez de classificar a existente no local:
print(sorted(xs, key=len))
lambda; apenas usekey = len