Curso de Python

Aula 10 - Listas em Python

Listas em Python

Listas são um tipo de dado (como os inteiros, booleanos, strings), mais especificamente, são sequências ordenadas e mutáveis (É possível alterar seus elementos) e possuem índices. Seus elementos são cercados por colchetes [] e cada elemento é separado por vírgulas. O índice é o identificador de um elemento, e começa do 0 até a quantidade de elementos - 1. Por exemplo, se uma lista tem 50 elementos, o primeiro índice será 0 e o último será a quantidade -1, que é 49.

sintaxe.py
# sintaxe básica
lista = ['e1', 'e2', 'e3']

# Exemplo muito ruim de usuários espalhados pelo programa
usuario1 = 'João Ferreira'
usuario2 = 'Felipe Almeida'
usuario3 = 'Julio Alberto'
usuario4 = 'Lucas Golmes'

# Exemplo muito bom e recomendável de uma lista de usuários
usuarios = ['João Ferreira', 'Felipe Almeida', 'Julio Alberto', 'Lucas Golmes']

Começando a entender as listas

Vamos começar a declarar uma lista com 3 elementos:

lista.py
lista = ['elemento1', 'elemento2', 'elemento3']
# índices:    0                     1                           2

# Acessando elementos pelo índice
print(lista[0])  # elemento1
print(lista[1])  # elemento2
print(lista[2])  # elemento3

# Acessando todos os elementos
print(lista)

# Listas com diferentes tipos
lista = ['Pedro', 15, True, 'Maria', False]
# índices:  0         1       2           3       4
print(lista[3])  # Maria

Algumas funções de listas

Listas possuem funções, e isso é muito bom, pois com funções as listas ganham muitas funcionalidades.

funcoes.py
# Maior e menor valor
vendas = [120, 456, 123, 986, 965, 329, 943, 542, 239, 236, 823, 967]
print(max(vendas))  # Maior valor
print(min(vendas))  # Menor valor

# Soma dos elementos
notas = [8, 9, 1, 4, 5, 6, 7, 4, 4, 5, 7, 10, 2, 4, 8]
print(sum(notas))  # Soma todos os valores

# Tamanho da lista
nomes = ["Ana", "Bruno", "Carlos", "Daniela", "Eduardo", "Fernanda"]
print(len(nomes))  # Quantidade de elementos

Índices negativos

Índices negativos são iguais aos índices positivos normais mas agora ocorre uma inversão. O último índice é o -1 e o primeiro depende de quantos elementos uma lista tem.

negativos.py
cores = ['vermelho', 'laranja', 'amarelo', 'verde', 'azul', 'violeta']
# negativos: -6                 -5             -4               -3         -2           -1

print(cores[-1])  # violeta (último elemento)
print(cores[-3])  # verde

Fatiação de listas

FATIAÇÃO DE LISTAS: Permite acessar múltiplos elementos de uma só vez!

fatiacao.py
materiais = ['Ferro', 'Madeira', 'Metal', 'Concreto', 'Pedra']
# índices:          0               1               2                3                4

# Acessando múltiplos elementos
print(materiais[1:4])  # ['Madeira', 'Metal', 'Concreto']

# Com índices negativos
animais = ['Gato', 'Coruja', 'Aranha', 'Escorpião']
print(animais[-3:-1])  # ['Coruja', 'Aranha']

Alterando os elementos da lista

Você pode alterar os elementos de uma lista tanto explicitamente quanto implicitamente.

alteracao.py
# Removendo elementos
automoveis = ['Carro', 'Caminhão', 'Moto', 'Bicicleta']
automoveis.remove('Bicicleta')  # Remove pelo valor

frutas = ['Maçã', 'Banana', 'Laranja', 'Kiwi']
frutas.pop(2)  # Remove pelo índice
frutas.pop()   # Remove o último elemento

# Adicionando elementos
estados_sul = ['Paraná', 'Rio Grande do Sul']
estados_sul.append('Santa Catarina')  # Adiciona no final
estados_sul.insert(1, 'São Paulo')    # Insere em posição específica

# Alterando elementos
compras = ['Tomate', 'Sabonete', 'Detergente']
compras[1] = 'Shampoo'  # Substitui diretamente

Juntando listas

Já pensou juntar listas para criar uma nova lista?

juncao.py
# Método extend
planetas = ['Terra', 'Marte', 'Vênus']
estrelas = ['Sol', 'Sagittarius A']
planetas.extend(estrelas)

# Método com operador +
sucos = ['Laranja', 'Limão', 'Abacaxi']
refrigerantes = ['Coca-Cola', 'Pepsi']
bebidas = sucos + refrigerantes

Organizando listas

Imagine que você tenha uma lista toda embaralhada, e precisava colocar em ordem.

ordenacao.py
# Ordem alfabética
letras = ['c', 'd', 'y', 'w', 'b', 'a', 'z', 'j']
letras.sort()  # Ordem crescente
letras.reverse()  # Ordem decrescente

# Ordem numérica
numeros = [4, 8, 12, 5, 9, -4, 0, 5, 6]
numeros.sort()  # Crescente
numeros.sort(reverse=True)  # Decrescente

Contando elementos

Quando você quer contar algum elemento, ou seja, verificar quantas vezes ele aparece numa lista.

contagem.py
produtos = ['Arroz', 'Feijão', 'Arroz', 'Macarrão', 'Arroz']
print(produtos.count('Arroz'))  # 3 vezes

Operadores de pertencimento

Os operadores de pertencimento verificam se um valor está contido ou não está contido em uma lista.

pertence.py
passaros = ['Tucano', 'Bem-te-vi', 'Quero-Quero']
print('Tucano' in passaros)     # True
print('Pombo' not in passaros)  # True

Desempacotamento de listas

O desempacotamento de listas é utilizado quando você quer atribuir diversas variáveis para cada elemento da lista.

desempacotamento.py
# Desempacotamento básico
nomes = ['João', 'Felipe', 'Fábio']
user1, user2, user3 = nomes

# Com asterisco para elementos restantes
frutas = ['Melancia', 'Abacaxi', 'Maçã', 'Laranja']
primeira, *resto = frutas

# Asterisco no início
animais = ['Tubarão', 'Crocodilo', 'Gato', 'Morcego']
*inicio, ultimo = animais
\