Resumo : neste tutorial, você aprenderá como usar o sort()
método Python List para classificar uma lista.
Introdução ao sort()
método Python List
Para ordenar uma lista , você usa o sort()
método:
list.sort()
Linguagem de código: Python ( python )
O sort()
método classifica a lista original no lugar. Isso significa que o sort()
método modifica a ordem dos elementos da lista.
Por padrão, o sort()
método classifica os elementos de uma lista usando o operador menor que ( <
). Em outras palavras, coloca os elementos inferiores antes dos superiores.
Para classificar os elementos de maior para menor, você passa o reverse=True
argumento para o sort()
método assim:
list.sort(reverse=True)
Linguagem de código: Python ( python )
Exemplos de métodos sort() de lista Python
Vejamos alguns exemplos de uso do sort()
método.
1) Usando o método Python List sort() para classificar uma lista de strings
Se uma lista contiver strings, o sort()
método classificará os elementos da string em ordem alfabética.
O exemplo a seguir usa o sort()
método para classificar os elementos da guests
lista em ordem alfabética:
guests = ['James', 'Mary', 'John', 'Patricia', 'Robert', 'Jennifer']
guests.sort()
print(guests)
Linguagem de código: Python ( python )
Saída:
['James', 'Jennifer', 'John', 'Mary', 'Patricia', 'Robert']
Linguagem de código: Python ( python )
E o exemplo a seguir usa o sort()
método com o reverse=True
argumento para classificar os elementos da guests
lista na ordem alfabética inversa:
guests = ['James', 'Mary', 'John', 'Patricia', 'Robert', 'Jennifer']
guests.sort(reverse=True)
print(guests)
Linguagem de código: Python ( python )
Saída:
['Robert', 'Patricia', 'Mary', 'John', 'Jennifer', 'James']
Linguagem de código: Python ( python )
2) Usando o método Python List sort() para classificar uma lista de números
Se uma lista contiver números, o sort()
método classificará os números do menor para o maior.
O exemplo a seguir usa o sort()
método para classificar os números na scores
lista do menor para o maior:
scores = [5, 7, 4, 6, 9, 8]
scores.sort()
print(scores)
Linguagem de código: Python ( python )
Saída:
[4, 5, 6, 7, 8, 9]
Linguagem de código: Python ( python )
Para classificar os números do maior para o menor, você usa o sort(reverse=True)
seguinte:
scores = [5, 7, 4, 6, 9, 8]
scores.sort(reverse=True)
print(scores)
Linguagem de código: Python ( python )
Saída:
[9, 8, 7, 6, 5, 4]
Linguagem de código: Python ( python )
3) Usando o método Python List sort() para classificar uma lista de tuplas
Suponha que você tenha uma lista de tuplas como esta:
companies = [('Google', 2019, 134.81),
('Apple', 2019, 260.2),
('Facebook', 2019, 70.7)]
Linguagem de código: Python ( python )
E você deseja classificar a lista de empresas por receita, da maior para a menor. Para fazer isso:
Primeiro, especifique uma chave de classificação e passe-a para o sort()
método. Para definir uma chave de classificação, você cria uma função que aceita uma tupla e retorna o elemento pelo qual deseja classificar:
def sort_key(company):
return company[2]
Linguagem de código: Python ( python )
Esta sort_key()
função aceita uma tupla chamada company
e retorna o terceiro elemento.
Observe que a empresa é uma tupla, por exemplo, ('Google', 2019, 134.81)
. E as company[2]
referências à receita como 134.81
neste caso.
Segundo, passe a função sort_key para o sort()
método:
companies.sort(key=sort_key, reverse=True)
Linguagem de código: Python ( python )
O sort()
método utilizará o valor retornado pela sort_key()
função para as comparações.
Observe que você apenas passa o nome da função sem os parênteses para o sort()
método:
companies = [('Google', 2019, 134.81),
('Apple', 2019, 260.2),
('Facebook', 2019, 70.7)]
# define a sort key
def sort_key(company):
return company[2]
# sort the companies by revenue
companies.sort(key=sort_key, reverse=True)
# show the sorted companies
print(companies)
Linguagem de código: Python ( python )
Saída:
[('Apple', 2019, 260.2), ('Google', 2019, 134.81), ('Facebook', 2019, 70.7)]
Linguagem de código: Python ( python )
Usando expressão lambda
Para torná-lo mais conciso, Python permite definir uma função sem nome com a seguinte sintaxe:
lambda arguments: expression
Linguagem de código: Python ( python )
Uma função sem nome é chamada de função anônima . E essa sintaxe é chamada de expressão lambda .
Tecnicamente, é equivalente à seguinte função:
def name(arguments):
return expression
Linguagem de código: Python ( python )
O exemplo a seguir usa a expressão lambda para classificar as empresas por receita, da menor para a maior:
companies = [('Google', 2019, 134.81),
('Apple', 2019, 260.2),
('Facebook', 2019, 70.7)]
# sort the companies by revenue
companies.sort(key=lambda company: company[2])
# show the sorted companies
print(companies)
Linguagem de código: Python ( python )
Saída:
[('Apple', 2019, 260.2), ('Google', 2019, 134.81), ('Facebook', 2019, 70.7)]
Linguagem de código: Python ( python )
Resumo
- Use o método Python List
sort()
para classificar uma lista no local. - O
sort()
método classifica os elementos da string em ordem alfabética e classifica os elementos numéricos do menor para o maior. - Use
sort(reverse=True)
para reverter a ordem de classificação padrão.