Listas em Python: criar, acessar, modificar e percorrer
Este tutorial foi traduzido do original em inglês.Read in EnglishLeer en españolЧитать на русскомอ่านภาษาไทยAvisar sobre um erro de tradução
Pense na sua playlist de músicas favorita. Ela guarda várias músicas em uma ordem específica. Você pode adicionar músicas novas, remover as antigas, mudar a ordem delas ou pular direto para a música número cinco.
Uma lista em Python funciona exatamente assim. É uma coleção ordenada de itens que você pode alterar sempre que quiser. Listas de compras, nomes de alunos, recordes de pontuação, cores de pixels: as listas estão entre as ferramentas mais úteis de todo o Python.
Neste tutorial, você vai aprender a criar listas, acessar itens pela posição, adicionar e remover itens, percorrer listas com um laço, fatiá-las e evitar os erros mais comuns de quem está começando.
Como criar uma lista em Python
Você cria uma lista colocando itens dentro de colchetes [], separados por vírgulas. Cada item pode ser de qualquer tipo: strings, números, booleanos ou até outras listas.
['apple', 'banana', 'cherry'] [95, 87, 72, 100, 68] ['Alice', 15, True, 3.14]
Cada item da lista tem uma posição chamada índice. O primeiro item está no índice 0, o segundo no índice 1, e assim por diante. Essa regra de "começar do zero" vale em quase todas as linguagens de programação.
Você também pode criar uma lista vazia e adicionar itens a ela depois. Isso é comum quando você não sabe de antemão o que a lista vai conter.
[] [] ['h', 'e', 'l', 'l', 'o']
Como acessar itens de uma lista pelo índice em Python
Para pegar um único item de uma lista, coloque o número do índice entre colchetes depois do nome da lista. Lembre-se: os índices começam em 0, não em 1.
red green purple
O Python também aceita índices negativos, que contam a partir do final da lista. -1 é o último item, -2 é o penúltimo, e assim por diante.
purple yellow red
Os índices negativos são especialmente úteis quando você quer o último item, mas não sabe o tamanho da lista. my_list[-1] sempre devolve o último.
3 blue
Como modificar listas em Python
Listas são mutáveis, ou seja, você pode alterá-las depois de criadas. Dá para trocar itens individuais, adicionar novos ou juntar listas.
Alterando um item pelo índice
Para substituir um item específico, atribua um novo valor ao índice dele. Isso sobrescreve completamente o valor antigo.
['apple', 'banana', 'cherry'] ['apple', 'mango', 'cherry']
Adicionando itens com append(), insert() e extend()
O Python oferece três formas de adicionar itens a uma lista. Cada uma funciona de um jeito um pouco diferente.
['milk', 'eggs', 'bread'] ['milk', 'butter', 'eggs', 'bread'] ['milk', 'butter', 'eggs', 'bread', 'cheese', 'juice']
a = [1, 2, 3]
a.append([4, 5])
print(a) # [1, 2, 3, [4, 5]]a = [1, 2, 3]
a.extend([4, 5])
print(a) # [1, 2, 3, 4, 5]Como remover itens de uma lista em Python
Assim como há várias formas de adicionar itens, o Python oferece várias formas de removê-los. A escolha certa depende de você saber o valor ou a posição.
['cat', 'fish', 'hamster', 'dog'] fish ['cat', 'hamster', 'dog'] dog ['cat', 'hamster']
remove() procura um valor e apaga a primeira ocorrência que encontrar. Se o valor não existir, o Python gera um ValueError.
pop() remove pela posição e devolve o item removido. Isso é útil quando você precisa usar esse item depois de removê-lo, como ao distribuir cartas de um baralho.
[20, 30, 40, 50] []
Como percorrer uma lista em Python
Uma das coisas mais poderosas que você pode fazer com uma lista é percorrê-la com um laço: executar um trecho de código uma vez para cada item. É assim que você processa cem itens sem escrever cem linhas.
apple banana cherry
Leia assim: "para cada fruta na lista de frutas, exiba essa fruta". O Python pega o primeiro item, executa o código indentado, pega o próximo item, executa de novo, e assim por diante até a lista acabar.
Às vezes você precisa do número do índice junto com o item. A função enumerate() entrega os dois.
0: apple 1: banana 2: cherry
Você também pode percorrer a lista usando um intervalo de números de índice. Isso é útil quando você precisa comparar ou modificar itens pela posição.
Student 1: 85 Student 2: 92 Student 3: 78 Student 4: 95 Student 5: 88
Como verificar se um item está em uma lista em Python
A palavra-chave in verifica se um valor existe em uma lista. Ela retorna True ou False.
True False Green is in the list! Purple is NOT in the list.
Isso é muito mais limpo do que escrever um laço para procurar um valor manualmente. Use in sempre que precisar verificar se algo existe em uma lista.
Fatiamento de listas em Python
O fatiamento permite pegar uma parte da lista em vez de um único item. A sintaxe é list[start:end], em que start está incluído e end não está incluído.
['b', 'c', 'd'] ['a', 'b', 'c'] ['d', 'e', 'f'] ['a', 'b', 'c', 'd', 'e', 'f']
A regra de "o fim não está incluído" parece estranha no começo, mas tem uma vantagem: letters[:3] devolve exatamente 3 itens, e letters[3:] devolve o resto. Sem confusão de contar um a mais ou um a menos.
Você pode acrescentar um terceiro número, chamado passo (step). Ele diz ao Python quanto avançar de um item para o próximo: um passo 2 pega um item sim, outro não.
[0, 2, 4, 6, 8] [0, 3, 6, 9] [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
Métodos úteis de listas em Python
As listas do Python vêm com vários métodos embutidos. Estes são os que você vai usar com mais frequência.
[1, 1, 2, 3, 4, 5, 6, 9] [9, 6, 5, 4, 3, 2, 1, 1] 2
5 78 95 438 Average: 87.6
Erros comuns com listas em Python
As listas têm alguns comportamentos traiçoeiros que pegam quase todo iniciante. Entender isso agora vai poupar horas de depuração mais tarde.
[1, 2, 3, 4] [1, 2, 3, 4]
[1, 2, 3] [1, 2, 3, 4]
a = [1, 2, 3]
b = a # b IS a
b.append(4)
print(a) # [1, 2, 3, 4]a = [1, 2, 3]
b = a[:] # b is a COPY of a
b.append(4)
print(a) # [1, 2, 3]Exercícios práticos
Hora de praticar! Estes exercícios vão se apoiando uns nos outros, do básico ao mais desafiador. Tente resolver cada um antes de olhar as dicas.
Crie uma lista chamada animals contendo estas três strings: "cat", "dog", "rabbit".
Depois, exiba o tamanho da lista exatamente neste formato:
3Você recebe uma lista de cidades. Use índices negativos para exibir a última cidade da lista.
Saída esperada:
TokyoVocê tem uma lista de compras. Siga estes passos nesta ordem:
1. Adicione "bread" ao final da lista
2. Remova "milk" da lista
3. Exiba a lista final
Saída esperada:
['eggs', 'cheese', 'butter', 'bread']Este código tenta exibir a última cor da lista, mas quebra com um IndexError. Corrija o bug para que ele exiba:
purpleDica: a lista tem 4 itens. Quais são os índices válidos?
Escreva um programa que calcule a soma de todos os números da lista usando um laço for. Não use a função embutida sum().
Saída esperada:
150Encontre o maior número da lista usando um laço for. Não use a função embutida max().
Saída esperada:
95Leia este código com atenção e preveja o que ele vai exibir. Pense no que acontece quando duas variáveis apontam para a mesma lista.
Digite a saída exata (cada valor em uma linha nova, se houver vários prints).
Inverta a lista dada usando um laço. Não use reverse(), reversed() nem [::-1].
Saída esperada:
[5, 4, 3, 2, 1]Resumo: o que você aprendeu sobre listas em Python
Parabéns por chegar até o fim deste tutorial! Aqui está um resumo de tudo o que você sabe agora:
| Conceito | O que faz | Exemplo |
|---|---|---|
| Criar uma lista | Guarda itens em ordem | fruits = ["a", "b"] |
| Acessar pelo índice | Pega um item | fruits[0], fruits[-1] |
| Modificar itens | Altera um valor | fruits[0] = "cherry" |
append() | Adiciona ao final | fruits.append("date") |
insert() | Adiciona em uma posição | fruits.insert(1, "fig") |
remove() | Apaga pelo valor | fruits.remove("a") |
pop() | Apaga pelo índice | fruits.pop(0) |
Laço for | Processa cada item | for f in fruits: |
in / not in | Verifica se o item está na lista | "a" in fruits |
| Fatiamento | Pega uma parte | fruits[1:3] |
sort() / reverse() | Reordena os itens | fruits.sort() |
len() / sum() | Conta ou soma | len(fruits) |
As listas estão entre as estruturas de dados mais usadas em Python. Quase todo programa real usa listas, de aplicações web a ciência de dados e desenvolvimento de jogos.
O que vem a seguir?
No próximo tutorial, List comprehensions em Python, você vai aprender um atalho poderoso para criar e transformar listas em uma única linha de código.
Você vai ver como trocar 4 linhas de laço por uma única linha limpa e aprender quando as compreensões fazem sentido e quando um laço comum é melhor.