Introdução à classificação em Python

Em algum momento de um aplicativo ou programa, precisamos classificar os dados em alguma ordem, por exemplo, classificar os funcionários com base no salário ou em alguma classificação, classificar a lista de produtos com base no preço do produto e assim por diante. Nesse caso, o desenvolvedor precisa implementar a classificação em um programa, se o desenvolvedor estiver usando a linguagem de programação python, será muito fácil implementá-lo. O Python fornece funções embutidas para executar a classificação básica ou personalizar os recursos de classificação no nível granular. Existem 2 funções embutidas em python para classificar.

Vamos ver como classificar diferentes tipos de dados, classificar dados em ordem de personalização.

  • Precisamos executar a classificação na coleção de elementos ou grupos de elementos para obter uma coleção de elementos em alguma ordem de classificação. Para a classificação, a comparação precisa ser realizada entre cada elemento da coleção e a comparação é possível apenas e somente se eles forem do mesmo tipo de dados, portanto, podemos classificar na coleção se forem os mesmos elementos do tipo de dados, por exemplo, inteiro para inteiro pode comparar, mas não inteiro, a string.
  • O próximo ponto é criar a coleção de elementos, em python, estamos tendo listas, tupla, conjunto e estruturas de dados de dicionário que costumavam armazenar a coleção de elementos. Portanto, para executar a classificação, é necessário ter um entendimento básico dessas teses. Usaremos o Python 3; a sintaxe pode ser um pouco diferente se você estiver usando o Python 2 e a saída de exemplo também.

Função de classificação em python

Existem duas funções de classificação embutidas no python.

  • ordenar()
  • classificado ()

Duas funções de classificação são mencionadas abaixo:

1. sort ()

O método sort () classifica os elementos de uma determinada lista de coleções em uma ordem específica, crescente ou decrescente.

A sintaxe da função sort () é:

list.sort(key = …, reverse = …)

  • key - O parâmetro keyspecify a função usada para a comparação de classificação.
  • Reverse - O parâmetro reverse, se true, a lista classificada é revertida, o que significa classificado em ordem decrescente.

Para obter a descrição da função de classificação, use o comando help, conforme indicado abaixo.

>>> lis=(1, 4, 3, 2) >>> help( lis.sort )

Vamos começar a função de classificação com o exemplo.

Exemplo 1:

l = ( 20, 50, 10, 40, 60 ) print("list = ", l)
l.sort()
print("sorted list = ", l)

Resultado:

Como no código acima, a lista não classificada é criada (20, 50, 10, 40, 60) e aplica ainda a função sort (), que classifica a lista em ordem crescente e não retorna nada.

Em seguida, tentamos a função sort () no tipo de dados decimal ou flutuante.

Exemplo 2:

l = ( 26.7, 34.23, 67.45, 89.34, 23.18 ) print("list = ", l)
l.sort()
print("sorted list = ", l)

Resultado:

Em seguida, tentamos a função sort () no tipo de dados char.

Exemplo 3:

l = ( 'b', 'd', 'a', 'n', 'g') print("liist = ", l)
l.sort()
print("sorted liist = ", l)

Resultado:

Em seguida, tentamos a função sort () no tipo de dados String.

Exemplo 4:

l = ( "banana", "apple", "orange", "mango" ) print("liist = ", l)
l.sort()
print("sorted liist = ", l)

Resultado:

Em seguida, tentamos a função sort () em diferentes elementos de tipos de dados.

Exemplo 5:

l = ( 89, 56.78, "apple" ) print("liist = ", l)
l.sort()
print("sorted liist = ", l)

Resultado:

Em seguida, tentamos a função sort () com argumentos reversos.

Exemplo 6:

l = ( 26.7, 34.23, 67.45, 89.34, 23.18 ) print("liist = ", l)
l.sort( reverse = True )
print("sorted liist = ", l)

Resultado:

No código acima, a lista não classificada é criada (26.7, 34.23, 67.45, 89.34, 23.18) e, além disso, aplique a função sort () com reverse = True, o valor padrão de reverse é False, que classifica a lista em ordem inversa ou ordem decrescente.

Em seguida, tentaremos a função sort () com os principais argumentos:

O parâmetro key é o componente mais importante da função sort (). Para esse argumento, uma função é passada, que será usada em cada elemento da lista que está sendo classificada para organizar na ordem resultante.

Vamos começar o exemplo, suponha que tenhamos uma lista de seqüências de caracteres e desejamos classificar uma lista com base no comprimento das seqüências na lista na ordem crescente (do menor para o maior). A função len () interna em python retorna o comprimento da string, portanto, len () pode ser usado para passar o argumento-chave.

Exemplo 7:

word = "Hello"
length = len(word)
print( "The length of word is ", length)
l = ( "aaa", "bbbbb", "cc", "ddd" ) print("liist = ", l)
print( "The length of list is ", len(l))
# length of the list is 4, because it contains 4 elements
# Now we sort the list based on the length of the list elements
l.sort( key = len )
print("Sorted liist = ", l)
# Now we sort the list based on the length of the list elements and reverse
l.sort(key = len, reverse = True)
print("Sorted liist with reverse = ", l)

Resultado:

A ordem resultante do list.sort (key = len) é uma lista de cadeias de classificação na ordem do menor para o maior. Enquanto list.sort (key = len, reverse = True), resultando em uma ordem da lista, é do maior para o menor tamanho. O comprimento de cada elemento da lista é determinado pela função len ().

Em seguida, tentamos a função sort () com a tecla que passa, o usuário define a função:

Exemplo 8:

l = ( 'banana', 'orange', 'apple' ) print("liist = ", l)
# function return second element
def sort_onSecondChar(word):
return word(1) l.sort( key = sort_onSecondChar )
print("Sorted liist based on second character = ", l)
# Now we sort the list based on the length of the list elements and reverse
l.sort( key = sort_onSecondChar, reverse = True)
print("Sorted liist based on second character with reverse = ", l)

Resultado:

A ordem resultante do list.sort (key = sort_onSecondChar)) é uma lista de seqüências de classificação em ordem crescente, com base no segundo caractere. Enquanto a ordem resultante da lista list.sort (key = sort_onSecondChar, reverse = True) é decrescente com base no segundo caractere. A classificação de cada elemento da lista é determinada pelo usuário para definir a função sort_onSecondChar ().

2. classificado ()

A chamada de função classificada () na lista ou coleção, retorna a nova lista classificada. A função classificada () não edita nem altera a lista na qual é chamada, mas retorna a lista classificada como resultado.

A sintaxe da função classificada ():

sorted(iterable, key, reverse)

  • iterável - lista, tupla, string, conjunto, conjunto congelado, dicionário qualquer coleção ou iterável que precise ser classificado.
  • reverse-reverse especifique se a lista classificada será revertida ou não (ou seja, ordem decrescente). Isto é
  • chave - especifique a função como uma chave a ser comparada para a classificação. É opcional

Para obter a descrição da função de classificação, use o comando help, conforme indicado abaixo.

Considere os exemplos:

Exemplo 9:

l = ( 2, 1, 3, 6, 5, 4 ) print("list = ", l)
sorted(l)
print( "The sorted list = ", l)

Resultado:

Observe que também podemos usar a função list.sort () para executar o mesmo, mas as diferenças são que a função sort () modifica a lista no local e retorna None como resultado da saída. Outra diferença da função list.sort () é que ela pode se aplicar à única lista, enquanto que a classificada () pode se aplicar a qualquer coleção ou iterável.

Vamos ver o exemplo em que criamos a tupla (sabemos que para criar tuplas use (e) chaves e recursos de tupla, se ela é ordenada, ela armazena duplicatas, não pode se aplicar ao índice e é imutável) e aplica a função classificada () .

Exemplo 10:

t = ( 60, 20, 40, 10 )
print("Tuple = ", t)
re=sorted(t)
#print return of sorted()
print( "The return sorted list of sorted() = ", re)
#we check what is there in t
print( "After sorted tuple = ", t)

Resultado:

Se a função sort () aplicada à tupla, ela fornecerá o erro “AttributeError: 'tuple' objeto não tem atributo 'sort' '”.

Portanto, a função sort () não pode ser aplicada à tupla, nem mesmo a outras coleções, exceto a lista.

A seguir, veremos alguns exemplos com diferentes tipos de dados:

Exemplo 11:

l = ( 2.89, 56.34, 45.23 ) print("List of floating numbers = ", l)
re=sorted(l)
#print return of sorted()
print( "The return list of sorted() floating numbers = ", re)
lc = ( 'l', 'e', 'g', 'a', 'd' ) print("List of characters = ", lc)
re=sorted(lc)
#print return of sorted()
print( "The return list of sorted() characters = ", re)

Resultado:

A seguir, tentaremos a função classificada () com o parâmetro reverso:

Vamos considerar o exemplo:

Exemplo 12:

l = ( 2, 1, 3, 6, 5, 4 ) print("List = ", l)
re=sorted(l, reverse=True )
#print return of sorted()
print( "The return list of sorted() with reverse = ", re)

Resultado:

A seguir, veremos a função classificada () com o parâmetro chave, no código abaixo, passando a função len () para o parâmetro chave, portanto, a função classificada () retornará uma lista em ordem de classificação com base no comprimento dos elementos.

Exemplo 13:

l = ('aaaa', 'bb', 'ccc', 'ddddd') print("List = ", l)
re=sorted(l, key = len )
#print return of sorted()
print( "The return list of sorted() with key = ", re)

Resultado:

A seguir, veremos uma função classificada () com o parâmetro chave conforme o usuário define a função, no código abaixo, capturado passando a função returnSecond () para o parâmetro chave. A função returnSecond () é o usuário que define a função, que retorna apenas o segundo elemento; portanto, a função classificada () retorna uma nova lista classificada em ordem de classificação com base no segundo elemento da tupla. Se queremos classificar na base do primeiro elemento, edite a função returnSecond () para retornar o primeiro elemento como (L (0)).

Exemplo 14:

# return second element for sort
def returnSecond( L ):
return L(1) # list of tuple
list = ( ('a', 40), ('b', 30), ('c', 20), ('d', 10) ) # sorting list with key = returnSecond (returnSecond function which return second element so sort done based on seceond elemet)
sortedList = sorted(list, key = returnSecond)
# print list
print('The sorted list:', sortedList)

Resultado:

Alteramos o código acima usando a função lambda (a função lambda é uma função anônima, simula o mesmo que as funções embutidas de C e C ++).

Exemplo 15:

# list of tuple
list = ( ('a', 40), ('b', 30), ('c', 20), ('d', 10) ) # sorting list with key = lambda x : x(1) (lambda function which return second element so sort done based on second element)
sortedList = sorted( list, key = lambda x : x(1))
print( "The sorted list = ", sortedList)

Resultado:

O código acima altera a classificação com base no primeiro elemento, alterando a função lambda.

Exemplo 16:

# list of tuple
list = ( ('a', 40), ('b', 30), ('c', 20), ('d', 10) ) # sorting list with key = lambda x : x(0) (lambda function which return first element so sort done based on first element)
sortedList = sorted( list, key = lambda x : x(0))
# print list
print('The sorted list:', sortedList)

Resultado:

Agora vamos criar uma lista de detalhes do aluno e armazenar cada aluno com a tupla que usaremos. Uma tupla contém um registro do aluno, o primeiro elemento da tupla é o nome do aluno, o segundo elemento é o número de rolo do aluno e o terceiro elemento é a pontuação total do aluno. Em seguida, queremos armazenar os detalhes do aluno na ordem de suas notas, então vamos começar a codificação.

Exemplo 17:

students = ( ('john', 1, 60), ('jane', 2, 70), ('dave', '3', 70.5), ('joseph', 1, 92) ) print( "The Student List = ", students)
# sorting the student list of tuple based on the third element that is marks
sortedlist = sorted(students, key=lambda stud : stud(2))
print("The sorted list = ", sortedlist)
#reverese
sortedlist = sorted(students, key=lambda stud : stud(2), reverse=True)
print("The sorted list with reverse=True ", sortedlist)
# Display the student name and marks in sorting order of their marks
sortedlist = sorted(students, key=lambda stud : stud(2))
print("The student names and marks in order of their marks")
print("name", "marks")
for x in sortedlist:
print(x(0), x(2))

Resultado:

Conclusão

As funções Sort () e Sorted () são usadas para classificar a coleção. O list.sort () edita para a própria lista, enquanto o ordenado (lista) não edita para a lista retorna a nova lista classificada. A função sort () se aplica apenas à lista, enquanto a função sorted () pode ser aplicada a todas as coleções, como lista, tupla, dicionário e tudo.

Artigos recomendados

Este é um guia para classificação em Python. Aqui discutimos as duas funções de classificação incorporadas em python com o programa e a saída. Você também pode consultar o seguinte artigo para saber mais -

  1. Variáveis ​​Python
  2. Destruidor em Python
  3. Conexão com o banco de dados Python
  4. Editores Python
  5. Tipos de dados PL / SQL
  6. Diferentes tipos de dados SQL com exemplos