Menor nome de uma lista

10 views
Skip to first unread message

Felipe batista de souza

unread,
Nov 24, 2020, 8:39:48 PM11/24/20
to Python Brasil
Gente, por favor, estou tentando fazer um exercício que a função recebe uma lista de strings e devolve o nome com menos caracteres que tem nessa lista. Mas, tem que retornar sem espaços e com a primeira letra maiúscula.

Escrevi esse código, mas ele retorna o primeiro elemento da lista:


   
def menor_nome(lista):
    lista
= [x.strip().capitalize() for x in nomes]
    menor
= lista[0]
   
for i in lista:
       
if i < menor:
            menor
= i        
   
print(menor)



Daniel Chaves de Lima

unread,
Nov 24, 2020, 9:02:49 PM11/24/20
to python...@googlegroups.com
Faltou você usar a função Len.

def menor_nome(lista):
    lista = [x.strip().capitalize() for x in nomes]
    menor = lista[0]
    for i in lista:
        if len(i) < len(menor):
            menor = i        
    print(menor)


Mas isso tem um problema. Quando se tem mais de uma palavra com menor tamanho só a primeira será selecionada

Daniel Chaves de Lima

unread,
Nov 24, 2020, 9:05:36 PM11/24/20
to python...@googlegroups.com
Faltou você usar a função Len. E também q entrada da função está errada. O "correto" seria:

def menor_nome(nomes):
    lista = [x.strip().capitalize() for x in nomes]
    menor = lista[0]
    for i in lista:

William Rodrigues

unread,
Nov 24, 2020, 9:58:50 PM11/24/20
to python...@googlegroups.com
def menor_nome(lista):
    print(min(lista, key=len).strip().capitalize())

Explicando um pouco: min() vai retornar o menor valor de lista baseando-se na quantidade de caracteres (pra isso o len() no argumento key, ele vai usar o len() em cada um dos valores da lista antes de pegar o menor valor), esse valor vai ser uma string ao qual você poderá utilizar os métodos .strip() e .capitalize().

--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/CAKMLN3HVbfARhBV0_uP72Nom3vuUkLF%3DjRxrApuz6oLEETd_3A%40mail.gmail.com.
Reply all
Reply to author
Forward
0 new messages