Lista de classificação Python

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=Trueargumento 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 guestslista 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=Trueargumento para classificar os elementos da guestslista 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 scoreslista 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 companye 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.81neste 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: expressionLinguagem 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 expressionLinguagem 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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *