Classificar v/s classificado

Classificar v/s classificado

A classificação é uma técnica para reorganizar os elementos ou dados em ordem crescente ou ordem decrescente. Na programação python, podemos fazer a classificação com muita facilidade com a ajuda dos métodos classin () e classificados ().

Os métodos classificados () e classin () organizam os elementos em ordem ascendente ou descendente. Mesmo ambos realizam as mesmas operações, mas ainda assim são diferentes.

Para esses tutoriais, os usuários devem ter algumas idéias básicas sobre a lista, tuplas e conjuntos. Usaremos algumas operações básicas dessas estruturas de dados para mostrar uma imagem clara da mesma. E para isso, estou usando o Python3; portanto, se você estiver usando o Python2, pode haver alguma diferença de saída.

Classificado ():

A sintaxe para a função classificada () é:

classificado (iterável, chave, reverso = false)

Vamos implementar a classificação nos dados de string e número inteiro usando o método interno classificado ().

A função classificada () aceitará um iterável e devolverá os elementos iteráveis ​​classificados, que estarão em ordem crescente por padrão. Por padrão, a função classificada () organiza elementos em ordem ascendente porque o reverso = false.

Classificação de números

No número da célula [4]: Criamos uma lista numérica de números de nome.

No número da célula [5]: Chamamos a função classificada () e passamos a lista numérica (números) para isso. Temos a lista classificada em troca, que também é uma nova lista. A nova lista significa que a lista original que passamos para o classificado () como um parâmetro é inalterado. Do número da célula [6], confirmamos que a lista original permanece inalterada mesmo depois que o classificado () se aplica.

A função classificada () possui as seguintes propriedades:

  • A função classificada () não precisa ser definida antes de usar. Podemos chamá -lo diretamente, como fizemos no exemplo acima (número da célula [5]).
  • A função classificada () fará por padrão acordos de dados de ordem ascendente se não passarmos nenhum parâmetros para isso.
  • A função classificada () retorna uma nova lista, o que significa a lista original inalterada, como mostrado no número de células de exemplo acima [6].

Também podemos atribuir os resultados classificados () de volta a uma nova variável, como mostrado abaixo:


No número da célula [13]: Criamos uma lista numérica de números de nome. Chamamos a função classificada () e passamos a lista numérica (números) para isso.

Em seguida, atribuímos o resultado da função classificada () a uma nova variável Sort_Results para uso posterior.

Aplicar classificado () em tuplas e conjuntos:

A função classificada () também funciona em tuplas e conjuntos para classificar os elementos.


No número da célula [15]: Criamos uma tupla (num_tuple) e set (num_sets).

No número da célula [18]: Chamamos a função classificada e atribuímos os resultados de retorno a novas variáveis ​​(tuple_sorted e set_sorted). Em seguida, imprimimos os resultados e obtivemos os dados classificados. Mas os resultados estão no formato da lista, não no formato tuplas e define quando passamos nos parâmetros porque, por padrão, o classificado retorna os resultados no formato da lista. Então, se queremos obter os resultados no mesmo formato (conjuntos e tuplas), temos que usar um elenco.

No número da célula [22]: Podemos ver na saída, agora resulta no formato da tupla e definido como esperávamos, porque, ao chamar a função classificada (), também aplicamos o operador de fundição, que converte a lista de volta ao formato necessário.

String de classificação

Agora, vamos aplicar a função classificada () na lista de strings, como mostrado abaixo. Você verá que, antes de passar a string para a função classificada (), usamos o método split () que o parâmetro de formato padrão é o espaço (dividido por espaço). A razão por trás disso é obter a string inteira como uma lista, mas dividir a sequência inteira quando o espaço vem. Se não fizermos o que fizermos abaixo, então toda a string será dividida em termos de personagem e não obterá a saída correta como desejamos.

Portanto, se não usarmos o método split () durante a string classificada (), obteremos os resultados como abaixo:

Você pode ver que toda a string quando passamos para a função classificada () retorna a lista de caracteres. Agora os resultados não estão de acordo com nossos requisitos.

Então, para superar esse problema, temos que dividir () a string, como mostrado abaixo. Estamos dividindo a corda aqui com espaço porque temos um personagem principal do espaço que separa as cordas. Mas não é uma restrição; Você pode usar qualquer formatador dentro do método split () de acordo com suas posições de string.

No número da célula [27]: Inicializamos uma string e depois dividimos essa corda do espaço como um formatador dividido. E temos a lista de cada string de toda a string em vez dos caracteres da string.

No número da célula [28]: Chamamos a função classificada () e passamos esse str_value_list como um parâmetro para isso.

No número da célula [29]: Finalmente imprimimos a lista de strings classificada retorna pela função classificada (). Na célula [30], imprimimos novamente a lista original para confirmar que a lista original não é alterada pela função classificada ().

Classificar com o argumento reverso = verdadeiro

Agora, alteraremos o parâmetro padrão da função classificada () de false para true. Quando alteramos o valor do inverso de false para verdadeiro, a função classificada () classificará os dados em ordem decrescente.

Na célula [3]: Criamos uma lista inteira de números de nome.

Na célula [4]: Passamos a lista (números) para a função classificada (). Junto com isso, mudamos o reverso = true. Por causa do reverso = true, obtivemos os dados em ordem decrescente.

Na célula [5]: Imprimos a lista original para confirmar que ela não mudou a lista original.

Classificar o caso da string é importante

O Python usa o código Unicode para determinar o primeiro caractere da string antes de classificar a ordem descendente ou ascendente. Para que a função classificada () trate os caracteres pequenos e capitais de capital, mesmo que os mesmos, como um ou um valor, serão diferentes, como mostrado abaixo:


Então, para entender isso, escrevemos novamente um pequeno programa de classificação de string.


Na célula [6]: Criamos uma lista de nomes de string com todo o capital do primeiro caractere.

Na célula [7]: Quando classificamos o nome_Case, obtivemos o resultado desejado.

Na célula [8]: Quando mudamos o primeiro personagem de Harman para Harman e Apple para a Apple e classificamos novamente a lista, obtivemos um resultado inesperado porque o resultado mostra que a sequência da Apple na terceira posição na lista que realmente deve estar na posição 1ª no ÍNDICE DE LISTA. Isso é feito devido ao código Unicode que o python usou para verificar seu valor.

Na célula [11]: Nós imprimimos o nome do primeiro caractere com seu valor.

classificado () usando o parâmetro de chave

A função classificada () tem um recurso mais poderoso, que é o argumento principal. Essa chave espera uma função, e todos os elementos da lista devem passar para esta chave antes de gerar a saída final.

Podemos entender isso neste exemplo básico de classificação de strings. No anterior, descobrimos que Python usou o método Unicode para determinar o valor do primeiro caractere e, de acordo com isso, ele classifica os elementos. Podemos superar isso usando os principais recursos, e nosso resultado estará de acordo com nossas expectativas.


Agora, podemos ver que, pelo resultado, mesmo que o primeiro personagem seja pequeno ou capital, estamos obtendo resultados de acordo com a nossa expectativa, porque a chave que passamos converte cada elemento em um pequeno caso antes de ir para a classificação. Ainda assim, o valor original será impresso como vimos.

Sort () função

A sintaxe da função sort () é

lista.classificar (chave, reversa = false)

A principal diferença entre a função Sort () e classificada () é:


Na célula [18], Podemos ver que o método Sort () faz parte da lista e não um método interno. O método stor () também não funciona com tuplas e conjuntos. O método stor () funciona apenas com a lista, pois faz parte da classe da lista.

Criamos uma nova lista e chamamos o método Sort () como chamamos de classificado (), mas recebemos um erro porque, como dissemos antes, não é um método embutido.

Podemos chamar isso apenas usando a lista com o operador DOT, como mostrado acima na sintaxe.

Então, novamente chamamos o método stor () com a lista (números), e nossos dados foram organizados em ordem crescente como por padrão reverso = false. Mas quando imprimimos a lista original no número da célula [28], descobrimos que a lista original também mudou porque o método stor () não retorna um iterável.

Conclusão:

Então, nós estudamos os métodos classificados () e classificados (). Também vimos que o método Sort () não é um método interno porque é uma classe de lista e só pode acessar o objeto da lista. Mas o método classificado () está embutido e também pode funcionar com a tupla e os conjuntos.