Este artigo abordará um guia sobre listas de classificação no Python. Um objeto Python List é uma coleção de um ou mais itens separados por vírgula. É um objeto "iterável" e seus elementos podem ser acessados iterando pela lista usando declarações de loop e outras expressões. Você pode classificar uma lista de Python usando métodos "classificados" e "classificados", os dois são explicados no artigo. Todas as amostras de código deste artigo são testadas com Python 3.9.5 no Ubuntu 21.04.
Método de classificação
O método de classificação classifica uma lista "no local". Em outras palavras, ele modificará o objeto da lista que você classificará e reordenará seu elemento. Se você não precisar da lista original e não se importe com a lista de alterar sua ordem de elementos "no local", este é o método mais eficiente em Python para classificar uma lista. Considere este exemplo:
L = [2, 8, 6, 4]Depois de executar a amostra de código acima, você deve obter a seguinte saída:
[2, 4, 6, 8]A primeira declaração na amostra de código define uma lista. Em seguida, o método de "classificação" é chamado na lista. Ao imprimir a lista, você pode ver que o pedido da lista original foi alterado.
Por padrão, Python classifica uma lista em ordem crescente. Se você deseja classificar uma lista em ordem descendente, use o método "reverso", conforme mostrado no exemplo de código abaixo:
L = [2, 8, 6, 4]Depois de executar a amostra de código acima, você deve obter a seguinte saída:
[8, 6, 4, 2]O método "reverso" também altera uma lista de Python "no local" sem criar uma nova lista.
Se a sua lista contiver elementos de sequência, chamando o método de "classificação" será solicitado em ordem alfabética onde os símbolos e números são encomendados primeiro. Dê uma olhada no exemplo de código abaixo:
l = ["S", "A", "Z", "4", "#"]Depois de executar a amostra de código acima, você deve obter a seguinte saída:
['#', '4', 'A', 'S', 'Z']Você também pode usar o método reverso em uma lista que contém elementos da string.
l = ["S", "A", "Z", "4", "#"]Depois de executar a amostra de código acima, você deve obter a seguinte saída:
['z', 's', 'a', '4', '#']Método classificado
O método classificado também classifica uma lista de Python, da mesma maneira que o método "classificar". No entanto, em vez de modificar a lista original, ele retorna uma nova lista para que sua lista original fique intocada, caso você queira reutilizá -la. Considere o código abaixo:
List1 = ["S", "A", "Z", "4", "#"]Depois de executar a amostra de código acima, você deve obter a seguinte saída:
['S', 'A', 'Z', '4', '#'] ['#', '4', 'A', 'S', 'Z']Você pode ver na saída que "List1" está intacta e "List2" agora tem elementos classificados. Você também pode usar o método "reverso" na "Lista2" para alterar sua metodologia de pedidos.
Argumento reverso
Você pode usar o argumento "reverso" como uma alternativa para a função reversa nos métodos "classificar" e "classificar" para obter uma lista classificada em ordem decrescente. Apenas forneça um valor "verdadeiro" para alterar a ordem de classificação:
List1 = ["S", "A", "Z", "4", "#"]Depois de executar a amostra de código acima, você deve obter a seguinte saída:
['S', 'A', 'Z', '4', '#'] ['z', 'S', 'A', '4', '#']Usando a função chave para especificar sua própria lógica para classificar elementos de uma lista
Nos métodos "classificar" e "classificados", você pode especificar um argumento "chave" adicional que tome uma função chamada como seu valor. Esse argumento-chave pode receber uma função existente a partir de módulos python integrados ou você pode fornecer sua própria função com lógica personalizada. Dê uma olhada no exemplo de código abaixo:
List1 = ["abcde", "xyz", "ijkl"]Depois de executar a amostra de código acima, você deve obter a seguinte saída:
['abcde', 'xyz', 'ijkl'] ['xyz', 'ijkl', 'abcde']A amostra de código ilustra o uso do argumento "chave" nos métodos "classificados" e "classificados". A função fornecida a ele é chamada "len", que determina o comprimento de um objeto de string ou um iterável. A função ou chamável deve originalmente levar apenas um argumento. Você o atribui ao argumento "chave" sem usar aparelhos. A função chamada fornecida ao argumento "chave" é chamada em cada elemento da lista. Os valores retornados deste método chamável são usados como uma chave para classificar a lista. Portanto, fornecer a função "len" para o argumento "chave" classifica os elementos de uma lista na ordem de seu comprimento, isto é, do mais curto ao mais longo. Como afirmado anteriormente, você sempre pode usar o método "reverso" para reverter a metodologia de classificação.
Você também pode usar sua própria função personalizada ou funções lambda de uma linha que retornam o valor de uma única expressão. Dê uma olhada na amostra de código abaixo, onde uma lista está tendo tuplas de inventário atual de caixas de frutas:
List1 = [("manga", 99), ("laranja", 51), ("banana", 76)]]Depois de executar a amostra de código acima, você deve obter a seguinte saída:
[('Orange', 51), ('banana', 76), ('manga', 99)]A função "lambda" é fornecida com um argumento "inventário", que é cada elemento da lista em forma de tupla. Em seguida, retorna o segundo elemento de cada tupla como chave (no índice 1). A função de classificação então classifica todas as tuplas por seu segundo elemento em ordem ascendente. Você também pode usar a função "reversa" ou o argumento "reverso" no resultado final para reverter a ordem de classificação.
Conclusão
Estas são algumas maneiras de usar que você pode classificar o conteúdo de uma lista iterável em Python. O argumento "chave" permite que você escreva sua própria lógica de classificação personalizada, adequada para aplicativos que podem ter necessidades diferentes dos métodos de classificação integrados.