Python Lista sort() com exemplos
Qual é o método sort() em Python?
Função classificar em Python ajuda a classificar uma lista em ordem crescente ou decrescente. Ele pode ser usado para classificar uma lista numérica, tuplas e uma lista de strings. Ele não cria uma lista separada, mas modifica ou classifica a original.
Sintaxe do método Sort em Python
A função de classificação tem a seguinte sintaxe listada abaixo: –
List.sort(key=…, reverse=…)
A função de classificação possui dois parâmetros opcionais, listados abaixo: –
- Chave: - Isso é usado para classificar uma função com base em um critério de classificação.
- Reverse: - assume o valor como verdadeiro ou falso. Se for verdade, esta função personalizada classifica 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']
Explicação do código:
- 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 nome e representada por uma expressão lambda. A seguir está a sintaxe da 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 tupla e função personalizada para ilustrar como uma função de classificação com parâmetros-chave ajuda a classificar 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)]
Explicação do código:
- 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 embutida que determina o comprimento do item. O comprimento determinado pode ser usado para indexação na função de classificação. Para fazer isso, atribuímos Len ao 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 Código:
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']
Explicação do código:
- 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 organizadas primeiro na lista, seguidas por Guru99, que tem comprimento 6.
Este exemplo ilustra o conceito do parâmetro reverso na função de classificação conforme mostrado abaixo: –
Python Código:
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 Código:
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}]
Explicação do código:
- 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
Antes de resumir as diferenças, vamos entender a sintaxe do método Sorted.
Python Sintaxe:
sorted (list_name, reverse=…., key=..)
Explicação do código:
- 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 conforme mostrado abaixo: -
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
Explicação do código:
- 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 estão os pontos sobre as principais semelhanças e diferenças: -
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)]
Explicação do código:
- 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 rastreabilidade e gerenciamento eficaz de dados.
Conclusão
- A função sort ajuda a classificar uma lista numérica e de strings em python.
- Também pode ajudar na classificação de tuplas.
- Reverse e key são parâmetros opcionais da função.
- Se houver necessidade de ter uma lista separada e simultaneamente ter a lista original, então a função classificada deverá ser usada, caso contrário, a função de classificação deverá ser utilizada para obter uma utilização otimizada da memória.