Python/Conceitos básicos/Estrutura de dados: mudanças entre as edições
imported>Albmont m (um pouco mais sobre listas) |
imported>Marcos Antônio Nunes de Moura m (Foram revertidas as edições de 200.252.216.198 (disc) para a última revisão de Torneira) |
||
(7 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
Em Python existem dois tipos de estruturas de dados: | Em Python existem dois tipos de estruturas de dados: | ||
* | * Sequências: são objetos ordenados e finitos | ||
* Dicionários é um conjunto de elementos de mapeamentos indexados por chaves. | * Dicionários é um conjunto de elementos de mapeamentos indexados por chaves. | ||
As | As sequências imutáveis são as strings e as tuplas, dois ou mais elementos de qualquer tipo dentro de parênteses e separados por vírgula. | ||
Exemplo de sequência com strings: | Exemplo de sequência com strings: | ||
Linha 27: | Linha 24: | ||
== Dicionários == | == Dicionários == | ||
Dicionário é o outro tipo de | Dicionário é o outro tipo de sequência que associam objetos. São separados por vírgulas e delimitados por chaves e associados por dois-pontos. | ||
Linha 44: | Linha 41: | ||
== Listas == | == Listas == | ||
As | As sequências mutáveis são as [[w:Lista|listas]]. Listas são elementos entre colchetes e separados por vírgula. Em outras linguagens chamadas de vetor. | ||
<pre> | <pre> |
Edição atual tal como às 14h04min de 10 de abril de 2019
Em Python existem dois tipos de estruturas de dados:
- Sequências: são objetos ordenados e finitos
- Dicionários é um conjunto de elementos de mapeamentos indexados por chaves.
As sequências imutáveis são as strings e as tuplas, dois ou mais elementos de qualquer tipo dentro de parênteses e separados por vírgula.
Exemplo de sequência com strings:
>>> nome = 'leonardo' >>> len(nome) 8 >>> nome.capitalize() 'Leonardo' >>> nome.upper() 'LEONARDO' >>> nome 'leonardo' >>>
Dicionários
Dicionário é o outro tipo de sequência que associam objetos. São separados por vírgulas e delimitados por chaves e associados por dois-pontos.
>>> dic = {1:'mar', 2:'oceano', 3:'rio'} >>> len(dic) 3 >>> dic.items() [(1, 'mar'), (2, 'oceano'), (3, 'rio')] >>> dic.keys() [1, 2, 3] >>> dic.values() ['mar', 'oceano', 'rio']
Listas
As sequências mutáveis são as listas. Listas são elementos entre colchetes e separados por vírgula. Em outras linguagens chamadas de vetor.
>>> lista = [1,2,3] >>> lista2 = [3,4,5] >>> lista.extend(lista2) >>> lista [1, 2, 3, 3, 4, 5] >>> len(lista) 6 >>> lista.reverse() >>> lista [5, 4, 3, 3, 2, 1] >>> lista.sort() >>> lista [1, 2, 3, 3, 4, 5] >>>
Construção de listas
Existem várias formas de gerar listas de números. A mais simples é a função range, que gera uma lista de zero a n-1:
>>> range(5) [0, 1, 2, 3, 4] >>>
Para gerar uma lista que comece em um ponto arbitrário, passar este ponto como o início da lista:
>>> range(10, 13) [10, 11, 12] >>>
Caso o valor inicial seja maior ou igual ao valor final, a lista é vazia; listas decrescentes, ou listas que tenham um passo diferente de um podem ser geradas com um terceiro parâmetro:
>>> range(5, 0) [] >>> range(10, 6, -2) [10, 8] >>>
Uma forma curiosa de gerar estas listas é construir o objeto xrange; na prática, fazer um loop com xrange ou com range dá o mesmo resultado; para mais detalhes, consulte o help (help(xrange)):
for indice in xrange(1, 6): print indice
Operações com listas
Listas podem ser unidas, através de extend. Como a lista é um objeto, usa-se a forma lista.extend(lista2):
>>> lista1 = range(2) >>> lista2 = range(2, 4) >>> lista1.extend(lista2) >>> lista1 [0, 1, 2, 3]
Listas também podem ser replicadas, usando-se *. Note que esta operação é comutativa:
>>> [1, 2] * 3 [1, 2, 1, 2, 1, 2] >>> 3 * [1, 2] [1, 2, 1, 2, 1, 2] >>>
Pilhas
Agora você deve estar se perguntando: "Sim, mas Python só oferece essas Estruturas de Dados?" Você pode não ter reparado, mas podemos utilizar as listas nativas do Python para trabalharmos com outras estruturas, como Pilhas, Filas, Árvores, Listas de Prioridades(Heaps), etc...
Utilizando as listas como Pilhas: Pilhas nada mais são do que listas em que a inserção e a remoção de elementos acontece na mesma extremidade.
>>> pilha = [10, 20, 30] >>> pilha.pop() 30 >>> pilha [10, 20] >>> pilha.append(50) >>> pilha [10, 20, 50] >>> pilha.append(100) >>> pilha.pop() 100 >>> pilha.pop() 50 >>> pilha [10, 20] >> len(pilha) 2
Utilizando as listas como Filas: