Você está aqui: Python ::: Dicas & Truques ::: Lista (List) |
Como ordenar um array de acordo com a soma dos dígitos dos elementos em Python usando laços e list comprehensionQuantidade de visualizações: 759 vezes |
Nesta dica mostrarei como podemos ordenar uma list do Python de acordo com a soma dos dígitos de seus elementos. Em outra dica dessa seção eu mostrei como realizar esta tarefa usando uma função lambda. Agora veremos como atingir o mesmo resultado usando laços e list comprehension. Veja o código completo para o exemplo: # função que permite ordenar um vetor de acordo com a soma de # seus dígitos def ordenar(valores): # primeiro criamos uma nova lista e copiamos para ela # os valores do vetor passado como parâmetro desordenado = valores.copy() # criamos o vetor que guardará os valores ordenados ordenado = [] # enquanto houver elementos no vetor desordenado while desordenado: # The number that comes first, since the list is sorted by the primes # vamos assumir que o primeiro valor é o menor de todos menor = desordenado[0] # vamos obter a soma dos dígitos deste número soma = sum(int(c) for c in str(menor) if c != "-") # agora percorremos todos os itens do vetor desordenado for elemento in desordenado: soma_elemento = sum(int(c) for c in str(elemento) if c != "-") # a soma deste elemento é menor que a soma que já tínhamos if soma_elemento < soma: menor = elemento soma = soma_elemento Ao executar este código Python nós teremos o seguinte resultado: O vetor original é: [81, 10, 32, 40, 112, 9, 52, 15, 69] Vetor ordenado de acordo com a soma de seus dígitos: [10, 40, 112, 32, 15, 52, 81, 9, 69] |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |