Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Manipulação de Listas em Python

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Manipulação de Listas em Python

Por Ricardo Costa Val do Rosario e CoPilot 365

Listas: Versatilidade e Manipulação em Python

- As listas em Python oferecem flexibilidade ao possibilitar o armazenamento de elementos de tipos variados, 
como strings, números, booleanos e até mesmo outras listas. 

- Essa característica as torna apropriadas para situações que exigem manipulação de dados heterogêneos.

Função len(): Eficiência na Quantificação de Elementos

A aplicação da função len(lista) proporciona rapidamente o total de itens presentes na lista, eliminando 
a necessidade de contagem manual. 

Tal funcionalidade é particularmente útil em cenários que envolvem grandes volumes de informação.

Fatiamento (Slicing): Seleção Precisa de Subconjuntos

1 - A sintaxe lista[início:fim] permite selecionar elementos desde o índice inicial até o final - 1. 
  
2 -   Caso o início seja omitido ([:fim]), a seleção parte do primeiro elemento, enquanto se o fim 
      for omitido ([início:]), a seleção se estende até o último item. 

3 .- Adicionalmente, são aceitos índices negativos e o parâmetro de passo (exemplo: lista[-5:-1:2]).

Inserção de Elementos: Métodos Disponíveis

1. O método append(x) adiciona um novo elemento ao término da lista, enquanto extend(iterável) insere 
2. todos os itens de um iterável individualmente, ajustando o tamanho conforme necessário. 
3. A escolha entre os métodos depende da inclusão de um elemento isolado ou múltiplos elementos.

Remoção e Outras Operações

1. Para eliminar a primeira ocorrência de determinado valor, utiliza-se remove(x). 
2. Estão disponíveis outros métodos como pop(), insert(), clear(), sort() e reverse(), 
3. Cada qual destinado a diferentes formas de manipulação das listas.

Tópicos Avançados para Profundidade Analítica

1. List comprehensions tornam viável a criação de listas derivadas por meio de sintaxe concisa. 
2. Métodos como index(), count() e operadores de associação (in) estão disponíveis para busca e análise. 
3. Outras estruturas de dados—tuplas, conjuntos, arrays NumPy—devem ser consideradas conforme a aplicação.

Exemplos Práticos de List Comprehensions em Python

1. Transformação de Dados

python

Geração de uma lista de quadrados dos números de 1 a 10:
quadrados = [x**2 for x in range(1, 11)]
print(quadrados)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

2. Filtragem Condicional

Extração de números pares em determinado intervalo python

pares = [x for x in range(1, 11) if x % 2 == 0]
print(pares)
[2, 4, 6, 8, 10]

3. Operações sobre Strings

Cálculo dos tamanhos de palavras em uma lista de strings: python

palavras = ["banana", "laranja", "maçã", "uva"]
tamanhos = [len(p) for p in palavras]
print(tamanhos)
[6, 7, 4, 3]

4. Compreensão Aninhada

Construção do produto cartesiano entre duas listas: python

lista1 = [1, 2, 3]
lista2 = ["a", "b", "c"]
pares = [(x, y) for x in lista1 for y in lista2]
print(pares)
[(1, 'a'), (1, 'b'), (1, 'c'), (2, 'a'), (2, 'b'), (2, 'c'), (3, 'a'), (3, 'b'), (3, 'c')]

5. Condições Múltiplas

Seleção de valores divisíveis por 2 ou 3 dentro de um intervalo: python

div2ou3 = [x for x in range(1, 21) if x % 2 == 0 or x % 3 == 0]
print(div2ou3)
[2, 3, 4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20]

Dicas Avançadas

Para atribuição condicional inline, utilize if–else:

python

indicadores = ['sim' if x > 0 else 'não' for x in [-1, 0, 5]]
['não', 'não', 'sim']

Explore compreensões de dicionários e conjuntos:

python

dic = {x: x**2 for x in range(5)}
conj = {x for x in range(5) if x % 2}

Para grandes volumes de dados, considere expressões geradoras:

python

gen = (x**2 for x in range(1_000_000))

3 respostas
solução!

Aplicações de List Comprehensions em Análise de Dados

Por que Utilizar List Comprehensions?

  • As list comprehensions proporcionam uma abordagem sintética e eficiente para transformar, filtrar e agregar dados sem recorrer a múltiplos loops explícitos.

  • Na ciência de dados, tal recurso aprimora o pré-processamento de informações, tornando o código mais legível e alinhado com a ideologia “pythônica”.

1. Extração de Colunas em Estruturas de Registros

Dada uma lista de dicionários representando um dataset:

python

registros = [
    {'nome': 'Ana',   'idade': 28, 'nota': 9.0},
    {'nome': 'Bruno', 'idade': 32, 'nota': 7.5},
    {'nome': 'Carla', 'idade': 24, 'nota': 8.8}
]
idades = [registro['idade'] for registro in registros]
[28, 32, 24]

Esse procedimento substitui loops explícitos, facilitando a criação de vetores para análises estatísticas ou machine learning.

2. Filtragem de Valores Ausentes ou Inválidos

Considerando uma lista com valores numéricos e None indicando dados faltantes:

python

valores = [10.5, None, 7.2, 5.0, None, 9.8]
limpos = [v for v in valores if v is not None]
[10.5, 7.2, 5.0, 9.8]

Essa filtragem simplifica cálculos estatísticos subsequentes.

3. Flattening de Matrizes

Conversão de listas de listas em um único vetor de valores:

python

matriz = [
    [0.5, 1.2, 0.7],
    [1.1, 0.9, 0.3],
    [0.4, 1.4, 0.8]
]
flattened = [elemento for linha in matriz for elemento in linha]
[0.5, 1.2, 0.7, 1.1, 0.9, 0.3, 0.4, 1.4, 0.8]

Tal abordagem facilita agregações em toda a base de dados.

4. Normalização e Transformação de Dados

Após extrair vetores, é possível aplicar operações matemáticas diretamente:

python

min_v, max_v = min(limpos), max(limpos)
normalizados = [(v - min_v) / (max_v - min_v) for v in limpos]

Para transformações logarítmicas:

python

import math
log_vals = [math.log(v + 1) for v in limpos]

Essas transformações são feitas de forma sucinta, sem a necessidade de reatribuições intermediárias.

5. Avaliação Comparativa de Performance

1. List comprehensions apresentam desempenhos superiores aos loops tradicionais, por serem processadas 
 em C no CPython.  
2. Em operações massivas, o ganho de eficiência pode atingir 20–30% de redução no tempo de execução.

Recomendações Finais

1. Prefira list comprehensions sempre que a lógica couber em uma linha e mantiver a clareza.
2. Utilize condicionais para filtrar e rotular dados diretamente. 
3. Para processos de maior complexidade, recorra a funções auxiliares ou aos métodos map/filter, preservando assim  
a legibilidade do código.

Bom dia, Ricardo! Como vai?

Incrível! Continue compartilhando seus projetos com a comunidade Alura.

O material sobre manipulação de listas em Python ficou didático e completo. Gostei muito da forma como você abordou as operações essenciais, desde o básico como len() e fatiamento, até os métodos de inserção e remoção.

E o verdadeiro destaque são os exemplos práticos de List Comprehensions, detalhando cada tipo de uso e mostrando o poder e a concisão dessa funcionalidade.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Daniel, obrigado