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 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 = ['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.
# 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.
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!
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.
# 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?
# 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.
# 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.
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.
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 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