Python Lista sort() com exemplos
⚡ Resumo Inteligente
Python A função `list sort()` organiza os elementos de uma lista no próprio local, em ordem crescente por padrão ou decrescente através do parâmetro `reverse`, enquanto uma função de chave opcional ordena por critérios personalizados, como comprimento, campos de tupla ou funções definidas pelo usuário.
Qual é o método sort() em Python?
A função sort() em Python Ajuda a ordenar uma lista em ordem crescente ou decrescente. Pode ser usada para ordenar listas numéricas, tuplas e listas de strings. Ela não cria uma lista separada, mas modifica ou ordena a lista original.
Sintaxe do método Sort em Python
A função de ordenação tem a seguinte sintaxe:
List.sort(key=…, reverse=…)
A função de ordenação possui dois parâmetros opcionais, a saber:
- Chave: - Isso é usado para classificar uma função com base em um critério de classificação.
- Reverse: – Ela recebe o valor como verdadeiro ou falso. Se verdadeiro, esta função personalizada ordena a lista em ordem decrescente.
Classificando uma lista em ordem crescente usando o método Sort em Python
In Python, a função de classificação, por padrão, classifica qualquer lista em ordem crescente. Uma lista em ordem crescente tem o valor mais baixo no lado esquerdo e o valor mais alto no lado direito.
Exemplo:
Python código:
base_list=["Google","Reliance","Guru99","Content","Syntax"] base_list.sort() print("the base list after sorting is",base_list)
Saída:
the base list after sorting is ['Content', 'Google', 'Guru99', 'Reliance', 'Syntax']
Code Explicação:
- A lista acima é uma lista de strings definida aleatoriamente.
- A função de classificação de Python ajuda a classificar a lista aleatória em ordem crescente, com o menor comprimento da palavra no lado esquerdo e o maior comprimento da palavra no lado direito.
Classificando uma lista em ordem decrescente
A função sort também permite que uma lista seja classificada em ordem decrescente. Pode ser definido como a ordem onde a lista começa com o valor mais alto e termina com o valor mais baixo.
O parâmetro reverso da função de classificação é atribuído como verdadeiro para obter uma lista classificada em ordem decrescente.
Vejamos o exemplo abaixo:
Python código:
base_list=[100,600,400,8000,50] base_list.sort() print("the base list after sorting is",base_list) # Reverse Order base_list.sort(reverse=True) print("the base list after REVERSE sorting is",base_list)
Saída:
the base list after sorting is [50, 100, 400, 600, 8000] the base list after REVERSE sorting is [8000, 600, 400, 100, 50]
Nota: Certifique-se de que a atribuição da palavra “True” ao parâmetro reverso comece com “T” maiúsculo para evitar erros de tempo de execução.
Classificando uma lista de tuplas usando o método Sort em Python
Python Tuplas são coleções de elementos imutáveis que seguem uma sequência ordenada. PythonA função sort de pode ser usada para classificar uma lista de tuplas usando uma função personalizada e uma expressão lambda.
Uma função personalizada pode ser criada sem um nome e representada por uma expressão lambda. A seguir, a sintaxe para uma expressão lambda:
Sintaxe:
Lambda arguments: expression
A sintaxe acima é equivalente ao código python abaixo:
def name (arguments): return expression
Aqui está um exemplo de uma tupla e uma função personalizada para ilustrar como uma função de ordenação com parâmetros-chave ajuda a ordenar os elementos em uma tupla:
Python código:
base_list = [('Alto', 2020, 500),('MSFT', 2022, 300),('Guru99', 2019, 1070)] def get_key(base_list): return base_list[2] base_list.sort(key=get_key,reverse=True) print("The change in base list is as follows",base_list)
Saída:
The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]
Code Explicação:
- O parâmetro reverso é definido como verdadeiro para classificar a tupla em ordem decrescente.
- A função personalizada leva o segundo elemento da tupla.
- Isso é utilizado como a chave da função de classificação.
Vejamos o exemplo abaixo que faz uso da expressão lambda:
Python código:
base_list = [('Alto', 2020, 500), ('MSFT', 2022, 300), ('Guru99', 2019, 1070)] base_list.sort(key=lambda base_list:base_list[2],reverse=True) print("The change in base list is as follows",base_list)
Saída:
The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]
Explicação:
- A expressão lambda ajuda a classificar os elementos da tupla de cima para baixo, com a chave como o segundo elemento da tupla.
- O programa verificará o valor mais alto do segundo elemento da tupla.
Classificando itens da lista usando Len como parâmetro chave
Len é uma função integrada que determina o comprimento do item. O comprimento determinado pode ser usado para indexação na função de ordenação. Para isso, atribuímos Len ao item. Python parâmetro-chave da função de classificação.
Os seguintes Python O código ilustra como usar a função Len com a função sort.
Python Code:
base_list=["Alto", "Guru99", "Python", "Google", "Java"] base_list.sort(key=len) print("The sorted list based on length:",base_list)
Saída:
The sorted list based on length: ['Alto', 'Java', 'Guru99', 'Python', 'Google']
Code Explicação:
- O comprimento do elemento torna-se um índice para o parâmetro chave para organizar a lista em ordem crescente.
- A função Len estima o comprimento de cada elemento presente na lista base.
- Mantém o elemento mais curto no lado esquerdo e o elemento maior no lado direito.
- Aqui, as palavras alto e java têm comprimento 4, que são dispostas em primeiro lugar na lista, seguidas por Guru99, que tem um comprimento de 6.
Este exemplo ilustra o conceito do parâmetro reverso na função de ordenação, conforme mostrado abaixo:
Python Code:
base_list=["Alto", "Guru99", "Python", "Google", "Java"] base_list.sort(key=len,reverse=True) print("The sorted list based on length:",base_list)
Saída:
The sorted list based on length: ['Guru99', 'Python', 'Google', 'Alto', 'Java']
Classificando itens da lista usando função definida pelo usuário como parâmetro principal
Você também pode usar uma função definida pelo usuário como parâmetro chave para classificar uma lista. Aqui está um exemplo:
Python Code:
base_list = [{'Example':'Python','year':1991},{'Example':'Alto','year':2014},{'Example':'Guru99', 'year':1995},
{'Example':'Google','year':1985},{'Example':'Apple','year':2007},{'Example':'Emails','year':2010},]
def get_year(element):
return element['year']
base_list.sort(key=get_year)
print("The base list after sorting using explicit criteria",base_list)
Saída:
The base list after sorting using explicit criteria [{'Example': 'Google', 'year': 1985}, {'Example': 'Python', 'year': 1991}, {'Example': 'Guru99', 'year': 1995}, {'Example': 'Apple', 'year': 2007}, {'Example': 'Emails', 'year': 2010}, {'Example': 'Alto', 'year': 2014}]
Code Explicação:
- Uma função definida pelo usuário é criada para retornar o ano
- O parâmetro chave usa uma função definida pelo usuário como critério.
- A função de classificação irá organizar a lista em ordem crescente com base no valor do elemento “ano”.
Diferença entre o método de classificação e o método classificado em Python
Após analisar os exemplos acima, é útil comparar diretamente as duas ferramentas de ordenação. Antes de resumir as diferenças, vamos entender a sintaxe do método `Sorted`.
Python Sintaxe:
sorted (list_name, reverse=…., key=..)
Code Explicação:
- A função classificada classifica a lista em ordem crescente ou decrescente.
- A função aceita três parâmetros, dos quais dois parâmetros são do tipo opcional e um parâmetro é do tipo obrigatório.
- O parâmetro list_name é obrigatório ao usar o método Sorted.
- O método Sorted pode receber qualquer tipo de lista iterável como entrada.
- Parâmetros-chave e parâmetros reversos são parâmetros opcionais no método classificado em Python.
Aqui está um exemplo de uso da função sort e sorted em Python:
Python código:
#Use of the Sorted method Base_list=[11,10,9,8,7,6] print("the original list is",Base_list) New_list=sorted(Base_list) print("the New list using sorted method is",New_list) #Use of the Sort method Base_list=[11,10,9,8,7,6] print("the original list is",Base_list) New_list=Base_list.sort() print("the New list using sort method is",New_list)
Saída:
the original list is [11, 10, 9, 8, 7, 6] the new list using the sorted method is [6, 7, 8, 9, 10, 11] the original list is [11, 10, 9, 8, 7, 6] the new list using the sort method is None
Code Explicação:
- A lista original é passada como parâmetro obrigatório para a função classificada.
- O método Sorted retorna uma nova lista além da lista original.
- Como nenhum parâmetro adicional é passado para o método classificado, a nova lista é classificada por padrão em ordem crescente.
- A função sort não cria nenhuma nova lista.
A seguir, apresentamos os principais pontos de semelhança e diferença:
| Função classificada | Função de classificação |
|---|---|
| Função classificada em Python é uma função integrada que usa list_name como parâmetro obrigatório. | A função de classificação não usa a lista original como parâmetro. |
| O método classificado retorna uma nova lista | A função Sort não retorna uma nova lista |
| A função classificada deve ser usada para listas iteráveis | A função sort deve ser usada para listas não iteráveis. |
| Não modifica a lista original e nos permite reter os dados originais. | A função sort modifica a função original e, portanto, ocupa menos espaço de memória |
Quando utilizar o método classificado ou o método de classificação?
Tomemos um exemplo que requer que os dados da corrida sejam classificados. O programa usa o número de peito e o tempo em segundos para terminar a corrida.
Python código:
from collections import namedtuple Base = namedtuple('Runner', 'bibnumber duration') blist = [] blist.append(Base('8567', 1500)) blist.append(Base('5234', 1420)) blist.append(Base('2344', 1600)) blist.append(Base('2342', 1490)) blist.append(Base('23444', 1620)) blist.append(Base('6674', 1906)) print("original list",blist) blist.sort(key=lambda x: getattr(x, 'duration')) top_five_result = blist[:5] print("Results using sort function",top_five_result) r_blist=sorted(blist,key=lambda x: getattr(x, 'duration')) top_five_result = r_blist[:5] print("Results using sorted function",top_five_result)
Saída:
original list [Runner(bibnumber='8567', duration=1500), Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='23444', duration=1620), Runner(bibnumber='6674', duration=1906)] Results using sort function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)] Results using sorted function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)]
Code Explicação:
- A lista base é classificada usando a função de classificação e a função classificada.
- A lista base é perdida quando a função de classificação é aplicada.
- A função de classificação não deve ser aplicada ao conjunto de dados original. Deve ser usado quando houver uma versão copiada do conjunto de dados original.
- A função Classificada mantém a lista original. Isso não o substitui.
- Isso oferece melhor traccapacidade e gestão eficaz de dados.


