NOME DURAÇÃO
Curso de Python
Primeira Aula de Python
Como Instalar o Python no Windows
Características do Python
Recursos do Python
IDLE - Modo Interativo do Python
Instalando o PyCharm no Windows
Primeiro programa em Python
Comentários em Python
Indentação do código Python
Variáveis em Python
Características das Variáveis em Python
Nomenclatura das Variáveis em Python
Tipos de dados em Python
Variáveis do tipo Ponto Flutuante do Python
Entrada de Dados em Python
Operadores Aritméticos do Python
Módulo da Divisão em Python
Potenciação e Radiciação em Python
Operadores Relacionais do Python
Tomada de Decisão em Python
Estrutura if e else em Python
Depurando código Python
Operadores Relacionais Compostos do Python
Operadores Relacionais na Prática em Python
Operadores Lógicos em Python
Blocos de Instrução em Python
Blocos de Instrução em Python (Parte II)
Blocos de Instrução Python na Prática
Escopo de Nomes em Python
Estrutura de Atribuição Simples do Python
Atribuição Múltipla em Python
Operadores de Atribuição Compostos do Python
Atribuição Condicional em Python
Iteração em Python
Laços de Repetição do Python
Estrutura de repetição while em Python
A instrução for em Python
A função range() do Python
O for loop e a função range() do Python
Instrução break do Python
Instrução continue em Python
Estruturas de Dados Lista em Python
Lista, Pilha, Array, Set em Python
A classe list do Python
Classe list - Conceitos Avançados do Python
Funções da Classe list do Python
Iteração de Listas em Python
Fatiando Listas em Python
Incluindo, Alterando e Excluindo Elementos no Python
Ordenamento de Listas em Python
Quantidade de Itens em Python
Tuplas em Python
Operadores in e not in do Python
Operadores and, or e in do Python
Exemplo com Operador in em Python
Introdução às Strings em Python
Fatiando Strings com Python
Funções das Strings no Python
Comparação de Strings em Python
Iterando Strings em Python
Introdução aos Dicionários do Python
Dicionários na Prática com Python
Funções dos Dicionários no Python
Introdução às Funções em Python
Parâmetros de Função em Python
Parâmetros default em Python
Argumento de Função Nomeado vs Posicional em Python
Retornando Valores pelas Funções em Python

Nesta aula estudaremos o ordenamento de lista, a ordem padrão, como inverter a ordem e outras funcionalidades disponibilizadas pela biblioteca padrão do Python.

INTRODUÇÃO

Ordenar é definir a sequência dos elementos contidos numa lista. Por padrão, todo novo elementos adicionados é incluído no final da lista, logo, seu índice será igual a -1.

As listas são ordenadas das mais diversas formas, como por exemplo, por ordem alfabética. Todo ordenameto é um algoritmo que define a sequência em que os elementos serão dispostos. O Python disponibiliza por padrão, o ordenamento por ordem alfabética através funções incluídas na biblioteca padrão.

Nosso objetivo agora é estudar a função de ordenação disponibilizada nativamente pelo Python.

A DESCRIÇÃO DOS OBJETOS

Em Python, há 2 funções que definem um texto a ser impresso na saída padrão, isto é, se passarmos uma lista com parâmetro da função print() os elementos serão impressos na saída padrão devido a programação implementada pela classe list.

Podemos implementar a função __str__() ou então, __repr__() dentro das nossas classes para que as essas retornem qualquer texto que melhor defina o conteúdo do objeto.

Na ordenação, o funcionamento ocorrerá, por padrão, com o uso dessa descrição. Assim, se a classe no qual o objeto foi criado não possuir a implementação dessas funções, não será possível organizar com as funções padrão das bibliotecas.

Por padrão, todas as classes nativas trazem essas funções implementadas.

A FUNÇÃO sort()

A função sort() ordena os elementos alfabeticamente. Como estudado acima, o texto utilizado por padrão, será aquele retornado pelas funções que descrevem o conteúdo dos objetos.

A seguir, vamos definir uma lista e então, com a função sort(), iremos ordenar os elementos.

#coding: utf-8

>>> x = ["d", "a", "c", "b", ]
>>> x
["d", "a", "c", "b", ]

>>> lista.sort()
["a", "b", "c", "d"]

Como pode ser visto, inicialmente, a lista foi impressa seguindo a ordem em que definimos os elementos ainda na declaração. Em seguida, invocamos a função sort() e então, a lista foi impressa com os elementos ordenados alfabeticamente.

ORDEM INVERSA

Para invertermos a sequência, isto é, para que o últimos seja o primeiro e o primeiro o último, passamos como argumento da função sort() reverse=True. O parâmetro reverse como podemos deduzir, informa que queremos a ordem alfabética normal quando igual a True ou então, a ordem reversa quando igual True.

#coding: utf-8

>>> x = ["d", "a", "c", "b", ]
>>> x
["d", "a", "c", "b", ]

>>> lista.sort(reverse=True)
['d', 'c', 'b', 'a']

Como podemos ver, os itens foram impressos ordenamente na ordem reversa.

A FUNÇÃO reverse()

A função reverse() inverte a ordem da lista mas sem ordena-la, ou seja, a ordem em que os elementos estão dispostos é indiferente, o que importa, é fazer com que o último seja o primeiro e vice-e-versa.

Vamos definir uma lista numérica e em seguida, invocar a função reverse().

#coding: utf-8

>>> l = [10, 4, 7, 123, 45, 234]
>>> l
[10, 4, 7, 123, 45, 234]
>>> l.reverse()
>>> l
[234, 45, 123, 7, 4, 10]

No código acima, definimos uma lista e vinculamos a referência x à mesma. Feito isso, invocamos a função reverse() e então, imprimimos novamente os elementos. Desta vez, a impressão ocorreu na ordem inversa a ordem em que os elementos foram adicionados. Isso porque, a função reverse() havia sido invocada.

COMO A INVERSÃO OCORRE INTERNAMENTE

O Python sempre busca a forma de trabalho menos custoza, isto é, a mais performática. Por isso, ao invocarmos a função reverse(), ou então, ao ordenarmos inversamente os elementos, internamente, somente um propriedade é alterada, sem que nenhum elemento seja movido.

Isso é possível pelo fato das listas serem objetos iteraveis, definição está que permite-nos entregar os elementos da forma como bem entendermos. Assim, não podemos ver uma lista como sendo um Array em C, até porque, em Python, sempre é feito o mínimo necessário, utilizando desta maneira, a menor quantidade de memória e distribuindo o processamento.



Tags curso, python, lista, ordenação, blog

Comentários

comments powered by Disqus