Sorted Python: 3 Formas Incríveis de Ordenar Listas Em Python
Neste artigo vamos entender como funciona o sorted python, uma função utilizada para ordenar listas.
Ou seja, se você quer se tornar um programador Python terá que entender como esse tipo de função se comporta.
Isso porque em diversas situações você vai precisar ordenar listas para encontrar uma determinada informação rapidamente.
Sem mais delongas, vamos ao conteúdo.
Confira neste artigo:
O que são listas em Python?
Primeiramente vamos entender o que são essas famosas listas que sempre vimos na linguagem Python.
Como próprio nome sugere, a lista é uma estrutura de dados composta por itens organizados de forma linear, na qual cada um pode ser acessado a partir de um índice, que representa sua posição na coleção.
Importante lembrar que esse índice é sempre iniciado em zero.
Quando trabalhamos com lista é muito comum utilizar determinadas informações dentro dela.
Ou seja, para facilitar essa tarefa é necessário ordenar essa lista de uma forma que fique mais simples de trabalhar com as informações dentro dela.
É ai que entra a função sorted() na linguagem Python.
Veja também: Como Ganhar Dinheiro Trabalhando Apenas Com WordPress
Função sorted() em Python
A função sorted() na linguagem Python tem o objetivo de ordenar as informações de uma determinada lista.
Na linguagem Python as listas já possuem um método dentro delas que realiza a modificação da própria lista.
list.sort()
Existem também uma função embutida que realiza a construção de uma nova lista ordenada.
# Função embutida:
sorted()
A partir de agora nesse artigo vamos explorar diversas técnicas de ordenação de dados utilizando Python.
Ordenação Básica
Primeiramente vamos criar uma ordenação básica de forma ascendente. Para isso basta chamar a função sorted().
Com isso será retornado uma nova lista ordenada:
print( sorted( [5, 2, 3, 1, 4] ) )
Executado o código acima o resultado será esse:
[1, 2, 3, 4, 5]
Também é possível utilizar o método list.sort().
Dessa forma a lista será modificada nela mesma retornando “none” para evitar confusão.
Diferente da função sorted() utilizando o método você não precisará da lista original. Ou seja, fica um pouco mais eficiente.
a = [5, 2, 3, 1, 4]
a.sort()
print(a)
Executado o código acima o resultado será esse:
[1, 2, 3, 4, 5]
Um outro ponto que difere as duas formas é que o método list.sort() pode ser aplicado apenas nas listas.
No entanto a função sorted() aceita qualquer iterável.
print( sorted( {1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'} ) )
Executado o código acima o resultado será esse:
[1, 2, 3, 4, 5]
Veja também: 4 Formas De Utilização da Função Print()
Ordenação Por Chave
Tanto no método list.sort() quanto a função sorted() podemos usar um parâmetro key que determina uma função a ser chamada para cada elemento da lista.
Tudo isso antes da comparação ser realizada. No exemplo abaixo temos uma comparação case-insensitive de strings:
msg = sorted("Estude programação hoje e ganhe dinheiro amanhã".split(), key=str.lower)
print(msg)
Executado o código acima o resultado será esse:
['amanhã', 'dinheiro', 'e', 'Estude', 'ganhe', 'hoje', 'programação']
Ou seja, o valor do parâmetro key deve ser uma função que recebe um único argumento e retorna uma chave que deve ser usada com propósito de ordenação.
Essa técnica é bem rápida porque a função chave é chamada uma única vez para cada entrada de registro.
Ordenação Reversa No Python
Por fim, vamos entrar em uma técnica um pouco mais complexa de ordenação.
Existe um parâmetro chamado reverse que pode ser utilizado tanto no método list.sort() quando na função sorted().
Essa flag é bastante utilizada para realizar uma ordenação descendente.
O exemplo abaixo realiza uma ordenação reversa de uma tupla:
from operator import itemgetter, attrgetter
estudante = [
('David', 'A', 15),
('José', 'B', 12),
('Ingrid', 'B', 10),
('Maria', 'C', 13),
]
print(sorted(estudante, key=itemgetter(2), reverse=True))
Executado o código acima o resultado será esse:
[('David', 'A', 15), ('Maria', 'C', 13), ('José', 'B', 12), ('Ingrid', 'B', 10)]
Já esse outro exemplo é basicamente o mesmo funcionamento porém realizando uma ordenação reversa em um objeto.
from operator import itemgetter, attrgetter
class Estudante:
def __init__(self, nome, nota, idade):
self.nome = nome
self.nota = nota
self.idade = idade
def __repr__(self):
return repr((self.nome, self.nota, self.idade))
estudante_objeto = [
Estudante('David', 'A', 15),
Estudante('José', 'B', 12),
Estudante('Ingrid', 'B', 10),
Estudante('Maria', 'C', 13),
]
print(sorted(estudante_objeto, key=attrgetter('idade'), reverse=True))
Executado o código acima o resultado será esse:
[('David', 'A', 15), ('Maria', 'C', 13), ('José', 'B', 12), ('Ingrid', 'B', 10)]
Conclusão
Em conclusão, nesse artigo vimos 3 formas simples de ordenar listar utilizando o sorted Python.
Ou seja, se você deseja se tornar um programador Python recomendo estudar bastante sobre ordenação.
Até porque as empresas atualmente buscam muitos profissionais que possuem essa habilidade.
Clique no botão abaixo para acessar mais de 1400 cursos completos e com certificado válido.
ACESSAR CURSOS COM CERTIFICADOInvista em você e conquiste uma excelente carreira profissional na área da tecnologia.
Enfim, muito obrigado por ler até aqui e espero que você consiga conquistar todos seus objetivos.
Um forte abraço!
Sobre o Autor
0 Comentários