Python

Estruturas de Dados em Python

Estrutura de Dados em Python

Fala galera do mundo dos dados! Chegando mais um conteúdo da Iniciação em Python – Começando do ZERO. E o tema de hoje são as estruturas de dados da linguagem Python. 

Anteriormente vimos as variáveis no post anterior e elas formam as nossas estruturas de dados, que são os meios utilizados para armazenar e recuperar informações. Sendo assim, existem alguns tipos de estruturas de dados em Python: as sequências que são objetos ordenados e finitos (strings, listas e tuplas), dicionários que são conjuntos de elementos de mapeamento indexados por chaves e temos também estruturas de dados do tipo conjunto. Portanto, vale conferir os detalhes de cada uma dessas estruturas.

Estrutura de Dados Tipo Listas no Python

A primeira estruturas de dados em Python que veremos é a lista. Uma lista, identificada como list em Python, é uma sequência ou coleção ordenada de valores. Cada valor na lista é identificado por um índice. Os valores que formam uma lista são chamados elementos ou itens. As listas são similares a strings, que são uma sequência de caracteres, no entanto, diferentemente das strings, os itens de uma lista podem ser de tipos diferentes. Exemplos de listas:

  • numeros = [ 1, 2, 3 ]
  • letras = [ a, b, c ]
  • diversos = [ z, a1, 2 ]

Agora que já vimos um pouco do conceito, como manipulamos essas listas em Python? Quais operações são possíveis realizar com essa estrutura de dados? Temos funções prontas para trabalhar com listas? Essas e outras perguntas, temos as respostas na sequencia.

Operações com Listas no Python

Índices – O índice representa a posição do item na lista, contamos o índice da lista a partir do zero, ao acessar um índice inválido é apresentado um erro. Para facilitar o entendimento, observe o exemplo.

# Lista de strings 
animais = ['gato','tatu','rato','pato'] 
# Imprime o primeiro elemento da lista 
print( animais[0] ) 
# Imprime o segundo elemento da lista 
print( animais[1] ) 
# Imprime o terceiro elemento da lista 
print( animais[2] ) 
# Imprime o quarto elemento da lista 
print( animais[3] ) 
# Erro elemento inexistente
print( animais[4] ) 

Então, o trecho de código acima retornará os seguintes resultados na imagem abaixo.

Função sum listas em Python

Soma os elementos de uma lista.

# Lista de valores
notas = [0, 10.0, 7.0, 7.0, 8.0, 8.0] 
# Imprime a soma das notas
print( 'A soma das notas:', sum(notas) ) 

A função sum portanto, retornará o seguinte resultado na imagem abaixo, apresentando a soma da variável notas.

Função insert listas em Python

Insere um elemento em uma posição X de uma lista.

# Lista de valores 
notas = [0, 10.0, 7.0, 7.0, 8.0, 8.0] 
# Insere o elemento da lista na posição 1 
notas.insert(1, 5.0) 
# Imprime a nova lista de notas
print( notas ) 

Assim, ao usar função insert, retornará o seguinte resultado na imagem abaixo, apresentando a inserção do valor 5.0, na posição 1 variável notas.

Função remove listas em Python

Remove um elemento de uma lista.

# Lista de valores 
notas = [0, 10.0, 7.0, 7.0, 8.0, 8.0] 
# Remove o primeiro elemento da lista 
notas.remove(0) 
# Imprime a nova lista de notas
print( notas )

Portanto, o resultado da função remove, está na imagem abaixo, apresentando a remoção da posição 0 variável notas.

Funções max e min listas em Python

Retorna o maior e o menor valor da lista

  • max() – Retorna o maior valor da lista.
  • min() – Retorna o menor valor da lista.
# Lista de valores
notas = [0, 10.0, 7.0, 7.0, 8.0, 8.0] 
# Imprime a maior nota da lista
print( 'A maior nota:', max(notas) ) 
# Imprime a menor nota da lista
print( 'A menor nota:', min(notas) ) 

Dessa forma, temos dois resultados que serão apresentados na imagem abaixo. Primeiramente da função max, exibindo a maior nota da variável notas. Em seguida, o da função min, exibindo a menor nota da variável notas.

Função sort e sorted listas em Python

Ordena uma lista.

  • sort() – Ordena a lista lista.
  • sorted() – Retorna a lista ordenada.
# Lista de valores
notas = [0, 10.0, 7.0, 7.0, 8.0, 8.0] 
# Ordena a lista
notas.sort() 
# Imprime a nova lista de notas
print( notas ) 
# Lista de strings
animais = ['gato','tatu','rato','pato'] 
# Ordena a lista com outra função
sorted( animais )

Mais uma vez, temos dois resultados que serão apresentados na imagem abaixo. Agora, o primeiro da função sort, qe ordena a lista variável notas. Em seguida, o da função sorted, que apenas retorna a lista ordenada da variável notas

Função append listas em Python

Insere um item no final da lista.

# Lista de valores
notas = [0, 10.0, 7.0, 7.0, 8.0, 8.0] 
# Insere na lista
notas.append(6.0) 
# Imprime a nova lista de notas
print( notas ) 

Sendo assim, para a função append, teremos o seguinte resultado na imagem abaixo, apresentando a inserção do valor 6.0, ao final da lista variável notas.

Função extend listas em Python

“Mescla” duas listas, fazendo com que passe a existir apenas uma, com todos os elementos.

# Lista de valores 
notas = [0, 10.0, 7.0, 7.0, 8.0, 8.0] 
# Lista de strings 
animais = ['gato','tatu','rato','pato'] 
# Mescla as listas
notas.extend(animais) 
# Imprime a nova lista de notas
print( notas ) 

Abaixo a imagem com o resultado da função extend, onde ocorre a mescla de duas listas a notas e a animais, dentro da lista notas, que agora tem novos elementos.

Operações Matemáticas com Listas no Python

Para finalizar as operações com listas, algumas operações matemáticas.

# Soma listas 
exemplo = ['z', 'y'] + ['x',] 
# Imprime a lista após a soma 
print( exemplo ) 
# Soma listas
exemplo += [3,] 
# Imprime a lista após a nova soma
print( exemplo ) 
# Retorna Multiplicação da lista
exemplo * 2 

Observe na imagem abaixo, o que acontece com as operações de soma e multiplicação com listas.

Estrutura de Dados Tipo Tuplas no Python

Agora a próxima estruturas de dados em Python, as tuplas. Uma tupla, ou tuple em Python, em comparação a uma lista, também é uma sequência de itens de qualquer tipo. Entretanto, diferentemente de listas, tuplas são imutáveis. Sintaticamente, uma tupla é uma sequência de valores separadas por uma vírgula. Exemplos de Tuplas:

  • Alguem = ( João, Salvador ,1989 )
  • seq = ( 1, 2, 3 )

O que podemos fazer com as tuplas em Python? Quais operações são possíveis realizar com esse tipo estrutura de dados? Temos funções prontas para trabalhar com tuplas também? Seguimos para encontrar essas respostas.

Operações com Tuplas no Python

Elemento em uma tupla Python

Encontrar elementos em uma tupla.

# Tupla de strings
exemplo = ('a', 'b', 'c', 'd', 'e') 
# procura o elemento b na tupla
'b' in exemplo 
# procura o elemento f na tupla
'f' in exemplo 

Veja na imagem abaixo, como o código acima facilmente identifica elementos em uma tupla e retorna um booleano (Verdadeiro ou Falso).

Slicing em uma tupla Python

Retorna uma parte dos elementos de uma tupla.

# Tupla de strings
exemplo = ('a', 'b', 'c', 'd', 'e') 
# Retorna elementos do índice 1 até o índice 2 na 
exemplo[1:3] 
# Retorna elementos do inicio até o índice 2 na 
exemplo[:3]
# Retorna elementos do índice 3 até o final na tupla
exemplo[3:] 

Agora uma forma de fatiar a tupla pelo seu índice, observe o resultado do código na imagem abaixo.

Funções index e count em tupla Python

Identificação e contagem de elementos de tuplas.

  • index() – Retorna a posição da primeira ocorrência do elemento na tupla.
  • count() – Retorna a quantidade de elementos na tupla.
# Tupla de strings
exemplo = ('a', 'b', 'c', 'a', 'e') 
# Retorna a posição da primeira ocorrência do elemento a na tupla
print( 'O primeiro elemento a esta na posição:', exemplo.index('a') ) 
# Retorna a quantidade do elemento a na tupla
print( 'O quantidade do elemento a é:', exemplo.count('a') ) 

Agora teremos dois resultados que serão apresentados na imagem abaixo. O primeiro da função index, exibindo a primeira posição do elemento a da tupla exemplo. Em seguida, o da função count, que conta quantas vezes encontra o elemento a na tupla exemplo.

Operações Matemáticas com Tuplas no Python

Finalizando as operações com tuplas, algumas operações matemáticas.

# Soma tuplas 
exemplo = ('z', 'y') + ('x',) 
# Imprime a tupla após a soma 
print( exemplo ) 
# Soma tuplas
exemplo += (3,) 
# Imprime a tupla após a nova soma
print( exemplo ) 
# Retorna multiplicação da tupla
exemplo * 2 

As operações de soma e multiplicação com tuplas, observe na imagem abaixo.

Estrutura de Dados Tipo Dicionários no Python

Completando com mais uma estruturas de dados em Python de hoje, os dicionários. Dicionário é um tipo diferente de coleção, ele é um mapeamento nativo do Python. Um mapa é uma coleção associativa desordenada. A associação, ou mapeamento, é feita a partir de uma chave, que pode ser qualquer tipo imutável, para um valor, podendo ser qualquer objeto de dados do Python. Exemplos de Dicionários:

  • dic = { a : 1, b : 2, c : 3 }
  • dicionario = { letra1 : a, letra2 : b, letra3 : c }

E então, os poderosos dicionários tem funções prontas? Consigo trabalhar junto com outras estruturas de dados? Será que vai facilitar a vida do desenvolvedor? Queremos as respostas!

Operações com Dicionários no Python

Funções do Dicionário

  • len() – Quantidade de elementos contidos do dicionário.
  • del() – Deleta elementos no dicionário.
# Cria o dicionário
dic = { 'a' : 1, 'b' : 2, 'c' : 3 } 
# Imprime a quantidade de elementos do dicionário
print( 'Tamanho do dicionário:', len(dic), 'elemento(s)' ) 
# Deleta o elementos do dicionário chave b
del(dic['b']) 
# Imprime o novo dicionario
print( 'Novo dicionário', dic ) 

Observe na imagem abaixo o resultado de duas funções bem interessantes. Primeiro a função len contando a quantidade de elementos do dicionário. Na sequencia, a função del que deleta elementos do dicionários.

Verificação do Dicionário no Python

  • in – Verifica se o item está no dicionário pela chave.
  • not in – Verifica se o item não está no dicionário pela chave.
# Cria o dicionário
dic = { 'a' : 1, 'b' : 2, 'c' : 3 } 
# Verifica se a chave a está no dicionário
'a' in dic 
# Verifica se a chave d não está no dicionário
'd' not in dic 

Agora uma verificação de chaves no dicionários com in e not in. Confere o resultado na imagem abaixo.

Mesclando Dicionários no Python

Com a função update podemos mesclar dois ou mais dicionários, confere o código abaixo.

# Cria o dicionário a 
a = { 'gato' : 2, 'pato' : 4 } 
# Cria o dicionário b 
b = { 'tatu' : 5, 'pato' : 4 } 
# Mescla o dicionário b com o a
a.update(b) 
# Imprime o novo dicionário a
print( 'Dicionário a:', a ) 
# Imprime o dicionário b
print( 'Dicionário b:', b ) 

Realizamos a mescla do dicionário a com o b, dessa forma o a sofrerá a mescla e o b não sofrerá nenhuma modificação. Confere esse resultado na imagem abaixo.

Convertendo Dicionário em Listas no Python

Para esta atividade de conversão temos e funções que geram listas a gosto do freguês.

  • keys() – Retorna a lista de chaves de um dicionário.
  • values() – Retorna a lista de valores de um dicionário.
  • items() – Retorna a lista de lista de tuplas, composta por chave e o valor de um dicionário.
# Cria o dicionário a
a = { 'gato' : 2, 'pato' : 4, 'tatu' : 5 } 
# Retorna a lista de chaves do dicionário a 
a.keys() 
# Retorna a lista de valores do dicionário a 
a.values() 
# Retorna a lista de tuplas(chave, valor) do dicionário a
a.items() 

Teremos o resultado das três funções na imagem abaixo. Primeiramente é da função keys, que retorna uma lista apenas com as chaves do dicionário a. Em seguida, a função values retornando uma lista apenas com os valores do dicionário a. E finalmente, a função items, que retorna uma lista com tuplas de chave e valor do dicionário a.

Convertendo Listas em Dicionário no Python

E para fazer a operação inversa do que vimos acima, podemos usar duas funções para esse trabalho. São elas, dict e zip, que juntas vão pegar duas listas de mesma quantidade de elementos e fazer a mágica.

# Cria a lista a
a = { 'gato', 'pato', 'tatu' } 
# Cria a lista b
b = { 2, 4, 5 } 
# Retorna um dicionário a como chave e b como valores
dict( zip(a, b) ) 

Confere essa mágica na imagem abaixo. Onde, selecionamos as listas a e b, transformando a em chaves e b em valores.

Estrutura de Dados Tipo Conjuntos no Python

Finalizamos com mais uma estrutura de dados em Python, os conjuntos, criados com a função set. Conjunto são coleções desordenada de elementos, sem repetições. As suas principais utilização, são verificações de existência de itens e a remoção de itens duplicados. Além disso os conjuntos também suportam operações matemáticas simples. Exemplos de Conjuntos:

# Cria o conjunto c1 
c1 = set('Dados ao Cubo')
# Imprime o conjunto c1
print(c1)
# Cria o conjunto c2
c2 = set('Python')
# Imprime o conjunto c2
print(c2)  

Então, confere essa mágica na imagem abaixo. Onde, criamos os conjuntos para depois aplicarmos as funções neles.

Com os conjuntos criados, podemos aplicar algumas operações nessas estruturas de dados.

Diferença entre os conjuntos

A primeira operação na estrutura de dados de conjuntos, será a diferença entre eles, conforme o código Python a seguir.

# Diferença entre os conjuntos, letras que estão no c1 mas não no c2
print(c1 - c2)

Observe a diferença das estruturas de dados na imagem abaixo, onde temos os itens que estão no primeiro conjunto mas não no segundo.

Ou entre os conjuntos

Também é possível aplicar a operação lógica ou no conjunto, conforme código Python.

# Ou dos conjuntos, letras que estão em c1 ou c2
print(c1 | c2)

Dessa forma conseguimos pegar todos os itens das duas estruturas de dados do tipo conjunto. Com as letras que estão no conjunto 1, no conjunto 2 e em ambos.

Intersecção entre os conjuntos

Outra possibilidade de operações com a estrutura de dados do tipo conjuntos é a intersecção.

# Intersecção entre os conjuntos, letras que estão em ambos
print(c1 & c2)

Sendo assim, podemos selecionar exatamente os itens que estão em ambos os conjuntos somente.

Diferença Simétrica entre os conjuntos

E para fechar as operações nas estruturas do dados do tipo conjunto, uma diferença simétrica, conforme exemplo do código Python abaixo.

# Diferença simétrica entre os conjuntos, letras que estão em c1 ou c2, mas não em ambos
print(c1 ^ c2)

Dessa forma, como resultado temos os itens que estão em um ou em outro conjunto mas não em ambos.

Estrutura de Dados ao Cubo

E então, chegamos ao fim de mais um conteúdo da série Iniciação em Python – Começando do ZERO. Dessa forma, vimos alguns tipos de estrutura de dados Python e que são muito utilizadas em todas as soluoções no mundo dos dados. Acima de tudo, espero que esse conteúdo sobre Estruturas de Dados em Python te ajude na sua jornada e até a próxima! Abraços ao cubo.

Conteúdos ao Cubo

Então, se você curtiu o conteúdo, aqui no Dados ao Cubo tem muito mais. Então, deixo algumas sugestões de conteúdos que você pode encontrar. Sempre falando sobre o mundo dos dados!

Para finalizar, se torne também Parceiro de Publicação Dados ao Cubo. Escreva o próximo artigo e compartilhe conhecimento para toda a comunidade de dados.

Gostou? Compartilhe!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *