Desvendando as Listas em Python
Seu Alicerce para Análise e Ciência de Dados
Introdução
Se você está trilhando o caminho da programação em Python, especialmente com foco em análise de dados e ciência de dados, dominar as estruturas de dados é um passo crucial. Entre elas, as listas se destacam pela sua versatilidade e poder. Neste artigo, vamos mergulhar no universo das listas em Python, desde sua definição e criação até suas características fundamentais, preparando o terreno para explorarmos como manipulá-las para extrair insights valiosos dos seus dados. Listas são uma estrutura de dados, iteráveis, normalmente, mas não obrigatoriamente ordenadas, utilizadas para armazenar dados de diferentes tipos. Para o python a estrutura lista é envolvida por colchetes '[ ]'. Uma lista pode conter diferentes tipos de dados: string, caracteres, Inteiros, float (Números decimais), listas, Conjuntos ou Dicionários.
Criação de listas
Por Atribuição
lista_1 = [] # Neste caso é atribuiído à variável lista_1 uma lista vazia
idades = [25, 30, 22, 35, 28] # Observe que a lista idades é livre de orenação, lista esta que está sendo atribuída à variável idades.
Por construtor
lista_3 = list(objeto) # Criar uma lista a partir de outra estrutura de dados
Exemplos:
endereco = "Rua dos Bobos, nº 0"
No caso abaixo o método .list() converte cada caractere da string em um elemento da lista.
lista_endereco = list(endereco)
# Saída: ['R', 'u', 'a', ' ', 'd', 'o', 's', ' ', 'B', 'o', 'b', 'o', 's', ',', ' ', 'n', 'º', ' ', '0']
Mas como preencher a lista_endereco com cada palavra da string endereco?
Neste caso utilizamos o método .split() da classe string e espaço como separador.
endereco_por_palavra = endereco.split(' ')
# Saída: ['Rua', 'dos', 'Bobos,', 'nº', '0']
Outra forma de criar listas é por meio de dicionários utilizando o método construtor.
dicionario_a = {"item_1": 24, "item_2":48, "item_3": 72}
É possível criar uma lista apenas com as chaves do dicionário
lista_chaves = list(dicionario_a)
# Saída: ["item_1", "item_2", "item_3"]
É possível criar uma lista apenas com os valores do dicionário
lista_valores = list(dicionario_a.values())
# Saíde: [24, 48, 72]
É possível criar uma lista com as chaves e os valores de um dicionário. Neste caso a lista será composta por tuplas com a estrutura (chave, valor)
lista_tuplas = list(dicionario_a.items())
# Saída: [("item_1", 24), ("item_2", 48), ("item_3", 72)]
Compreensão de lista
Este é um método de criar uma lista a partir de alguma lógica, de forma eficiente e concisa. A lógica será aplicada a cada elemento do objeto iterado.
Estrutura do método list comprehension:
variavel_resultado = [(valor retornado) (iteração) (lógica)]
Exemplo:
idades = [ 15, 30, 12, 35, 28], utilizando list comprehension vamos resgatar apenas as idades acima de 18 anos, e salvar essas idades em uma lista maiores_idade
maiores_idade = [idade for idade in idades if idade >= 18]
print(maiores_idade)
# Saída: [30, 35, 28]
Um teste de mesa para melhor entendimento.
Quando se trata de operações matemáticas é possível não expressar a lógica e a operação matemática ser executada no valor de retorno. Por exemplo:
queremos calcular o dobro de cada idade da lista idades.
idades_dobradas = [idade * 2 for idade in idades]
Um teste de mesa para melhor entendimento
Assim a lista: idades_dobradas = [30, 60, 24, 70, 56], veja que neste exemplo não utilizamos lógica alguma para filtrar os resultados, então todos os resultados seriam válidos
É possível também realizar operações mais complexas. Imagina a situação. Imagine que você tem uma planilha com dados de consumo de energia por diferentes grupos de equipamentos de uma empresa. Em sua planilha você tem uma coluna para cada grupo de equipamentos, nesta coluna são informados os consumos de energia em MW registrados e os intervalos de tempo de medição.
Planilha
Suponha que você queira criar uma lista com a média de consumo de energia por grupo de equipamento.
Você cria uma lista para cada equipamento:
grupo_1 = [5, 0, 2, 10, 6]
grupo_2 = [6, 8, 15, 0, 0]
grupo_3 = [17, 5, 4, 0, 0]
medias_consumo = [sum(grupo) / len(grupo) for grupo in [grupo_1, grupo_2, grupo_3]]
Um teste de mesa para melhor entendimento
print(medias_consumo)
# Saída: [4.6, 5.8, 5.2]
Este último exemplo pode parecer um pouco complexo agora, mas ficará mais claro ao explorarmos as funções sum() e len() que operam sobre listas. Por ora, é importante saber que sum(lista) calcula a soma de todos os elementos da lista, e len(lista) retorna o número de elementos presentes na lista.
Características de listas
Iteráveis
Isso significa que podemos percorrer (iterar) os elementos da lista utilizando estruturas de repetição como o for.
for item in lista_quadrados:
print(item)
# Saída:
576
2304
5184
Indexáveis
Significa que cada elemento possui uma posição (índice), iniciando em 0 para o primeiro elemento. Podemos acessar os elementos utilizando seus respectivos índices.
item_1 = lista_valores[0]
print(item_1)
# Saída: 24
Mutáveis
Isso quer dizer que cada elemento da lista podem ser alterados.
Exemplo:
lista_valores[0] = 12
print(lista_valores)
# Saída: [12, 48, 72]
Assim, a estrutura de dados lista é uma ferramenta poderosa para organizar coleções de itens relacionados, evitando a necessidade de múltiplas variáveis individuais. Pense em armazenar os resultados de experimentos científicos, a lista de clientes de uma loja online ou o conjunto de palavras em um texto para análise. Dominar a criação e a manipulação de listas é fundamental. No próximo tópico, exploraremos as diversas maneiras de manipular esses conjuntos de dados.
Resumindo, as listas em Python são estruturas de dados fundamentais para organizar e manipular informações, especialmente no contexto de análise e ciência de dados. Dominar sua criação e características é o ponto de partida. No próximo artigo, mergulharemos nas operações essenciais sobre listas: como acessar itens específicos, adicionar e remover elementos, criar cópias seguras e ordenar dados. Se você busca aprimorar suas habilidades em Python para trabalhar com dados de forma eficiente e está pronto para descobrir o poder prático da manipulação de listas, não perca a continuação deste tema!