Python - ordenando lista de strings pelo tamanho

Primeiro vamos gerar uma lista à partir de uma string

>>> a = "This is a test string from Andrew".split()
>>> a
>>> ['This', 'is', 'a', 'test', 'string', 'from', 'Andrew']

Agora partimos pra dica

a.sort(key=len)

Também é possível ordenar as letras desconsiderando maiúsculas e minúsculas

a.sort(key=str.lower)

Neste último caso nem o tamanho nem a quantidade de caracteres não contam e sim a ordem dentro da tabela de caracteres

O Rodrigo Hübner postou esta dica - Show de bola!

>>> print sorted("This is a test string from Andrew".split(), key=len)
['a', 'is', 'This', 'test', 'from', 'string', 'Andrew']


No exemplo acima o python ordena as palavras pelo tamanho, para exibir apenas a maior


>>> print sorted("This is a test string from Andrew".split(), key=len)[-1]
['a', 'is', 'This', 'test', 'from', 'string', 'Andrew']


Abaixo apenas a maior palavra

max('lista de palavras'.split(),key=len)


Só falta resolver um problema, se duas palavras tiver o mesmo tamanho e forem as maiores

Um comentário:

Rodrigo Hübner disse...

Coisas legais de python... Podemos fazer assim também usando um pouco o conceito de linguagens funcionais:

>>> print sorted("This is a test string from Andrew".split(), key=len)
['a', 'is', 'This', 'test', 'from', 'string', 'Andrew']

linux-cookbook

Grupos do Google
Participe do grupo linux-cookbook
E-mail:
Visitar este grupo