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!
- Análise Exploratória de Dados com Python Parte I
- Manipulando Dados em PostgreSQL com Python
- Modelos em Produção com Streamlit
- Reconhecimento de Voz com a Biblioteca SpeechRecognition Python
- Storytelling com Dash e Plotly
- Analisando Dados do LinkedIn
- Visualização de Dados com Bokeh Python
- Importar CSV no BigQuery
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.
Apaixonado por dados e tecnologia ❤️ , criando soluções com dados 📊 📈 , desde 2015, sempre buscando tornar os processos orientados! Com formação em Engenharia da Computação 💾 , MBA Gestão da Informação e Business Intelligence e Especialização em Data Science.
Também atuo como professor na área de dados. Nas horas vagas crio modelos de Machine Learning 🤖 com Python em desafios do Kaggle e escrevo no Dados ao Cubo sobre o mundo dos dados 🎲 !
Compartilhando conhecimentos sempre 🚀