Como classificar listas em Python

How Sort Lists Python



Este artigo cobrirá um guia sobre a classificação de listas em Python. Um objeto de lista Python é uma coleção de um ou mais itens separados por vírgulas. É um objeto iterável e seus elementos podem ser acessados ​​por iteração na lista usando instruções de loop e outras expressões. Você pode classificar uma lista Python usando métodos de classificação e classificação, ambos são explicados no artigo. Todos os exemplos de código neste artigo são testados 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 de lista que você vai classificar e reordenará seu elemento. Se você não exige a lista original e não se importa que a lista mude sua ordem de elementos no local, este é o método mais eficiente em Python para classificar uma lista. Considere este exemplo:







a= [2, 8, 6, 4]

a.ordenar()

imprimir (a)

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



[2, 4, 6, 8]

A primeira instrução no exemplo 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 a ordem da lista original foi alterada.



Por padrão, Python classifica uma lista em ordem crescente. Se você quiser classificar uma lista em ordem decrescente, use o método reverso, conforme mostrado no exemplo de código abaixo:





a= [2, 8, 6, 4]

a.ordenar()

a.reverter()

imprimir (a)

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

[8, 6, 4, 2]

O método reverso também altera uma lista Python no local, sem criar uma nova lista.



Se sua lista contiver elementos de string, chamar o método de classificação nela irá ordená-la alfabeticamente onde os símbolos e números são ordenados primeiro. Dê uma olhada no exemplo de código abaixo:

a= ['s', 'para', 'Com', '4', '#']

a.ordenar()
imprimir (a)

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

['#', '4', 'para', 's', 'Com']

Você também pode usar o método reverso em uma lista contendo elementos de string.

a= ['s', 'para', 'Com', '4', '#']

a.ordenar()

a.reverter()

imprimir (a)

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

['Com', 's', 'para', '4', '#']

Método Ordenado

O método classificado também classifica uma lista Python, da mesma forma que o método de classificação. No entanto, em vez de modificar a lista original, ele retorna uma nova lista para que sua lista original seja deixada intacta no caso de você querer reutilizá-la. Considere o código abaixo:

lista1= ['s', 'para', 'Com', '4', '#']

lista2= classificado(lista1)

imprimir (lista1,lista2)

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

['s', 'para', 'Com', '4', '#'] ['#', '4', 'para', 's', 'Com']

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 ordenação.

Argumento Inverso

Você pode usar o argumento reverso como uma alternativa para a função reversa nos métodos de classificação e classificação para obter uma lista classificada em ordem decrescente. Basta fornecer um valor True para alterar a ordem de classificação:

lista1= ['s', 'para', 'Com', '4', '#']

lista2= classificado(lista1,reverter=Verdade)

imprimir (lista1,lista2)

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

['s', 'para', 'Com', '4', '#'] ['Com', 's', 'para', '4', '#']

Usando a função de tecla para especificar sua própria lógica para classificar os elementos de uma lista

Nos métodos de classificação e classificação, você pode especificar um argumento de chave adicional que recebe uma função que pode ser chamada como seu valor. Este argumento-chave pode ser atribuído a 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:

lista1= ['abcde', 'xyz', 'ijkl']

lista2= classificado(lista1,chave=len)

imprimir (lista1,lista2)

lista1.ordenar(chave=len)

imprimir (lista1)

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

['abcde', 'xyz', 'ijkl'] ['xyz', 'ijkl', 'abcde']

['xyz', 'ijkl', 'abcde']

O exemplo de código ilustra o uso do argumento chave em métodos classificados e de classificação. A função fornecida a ele é chamada len, que determina o comprimento de um objeto string ou de um iterável. A função ou chamável deve originalmente ter apenas um argumento. Você o atribui ao argumento-chave sem usar colchetes. A função chamável fornecida para o argumento chave é chamada em cada elemento da lista. Os valores retornados deste método chamável são então usados ​​como uma chave para classificar a lista. Portanto, fornecer a função len ao argumento-chave classifica os elementos de uma lista na ordem de seu comprimento, ou seja, do mais curto para o mais longo. Conforme declarado 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 no exemplo de código abaixo, onde uma lista contém tuplas do estoque atual de caixas de frutas:

lista1= [('manga', 99), ('laranja', 51), ('banana', 76)]

lista1.ordenar(chave=lambdainventário: inventário[1])

imprimir (lista1)

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

[('laranja', 51), ('banana', 76), ('manga', 99)]

A função lambda é fornecida com um inventário de argumentos, que é cada elemento da lista na forma de tupla. Em seguida, ele 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 crescente. Você também pode usar a função reversa ou o argumento reverso no resultado final para inverter a ordem de classificação.

Conclusão

Estas são algumas maneiras de 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.