Como classificar listas em python

Como classificar listas em python

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]
eu.organizar()
Impressão (L)

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]
eu.organizar()
eu.reverter()
Impressão (L)

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", "#"]
eu.organizar()
Impressão (L)

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", "#"]
eu.organizar()
eu.reverter()
Impressão (L)

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", "#"]
List2 = classificado (List1)
Print (List1, List2)

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", "#"]
List2 = classificado (List1, reverse = true)
Print (List1, List2)

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"]
LIST2 = classificado (List1, key = len)
Print (List1, List2)
Lista1.classificar (key = len)
Imprimir (List1)

Depois de executar a amostra de código acima, você deve obter a seguinte saída:

['abcde', 'xyz', 'ijkl'] ['xyz', 'ijkl', 'abcde']
['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)]]
Lista1.Sort (Key = Inventário Lambda: Inventário [1])
Imprimir (List1)

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.