
Passo 1 de 8
Reunir valores em uma lista
Crie listas com colchetes e com list, preservando a ordem e os valores repetidos.
Trilha de aprendizado · Nível 3 · Tutorial 2
Criar listas para reunir dados ordenados, consultar seus elementos e modificar seu conteúdo usando operações adequadas.
Reunir valores em uma lista
Crie listas com colchetes e com list, preservando a ordem e os valores repetidos. 3 min
Consultar elementos e trechos
Use índices, fatias e len para consultar listas e distinguir um elemento de uma lista de elementos. 3 min
Substituir um elemento
Atualize uma posição existente da lista sem alterar seu tamanho nem os outros elementos. 2 min
Adicionar elementos com append e extend
Acrescente um valor ou um lote de valores ao final de uma lista e diferencie a alteração feita do retorno do método. 4 min
Verificar presença e lista vazia
Teste se um valor está na lista e escolha ações conforme a presença ou a ausência de elementos. 2 min
Remover por posição ou por valor
Escolha entre pop, remove e del, acompanhe o conteúdo restante e use verificações antes de remover. 4 min
Construir uma lista de resultados com for
Percorra uma lista, selecione valores e acrescente resultados calculados a outra lista, preservando os dados de origem. 3 min
Aplicar e revisar: atualizar uma lista de atividades
Execute uma atualização completa de durações no seu Python e confira o conteúdo da lista, os retornos das operações e os resultados do laço. 5 min

Passo 1 de 8
Crie listas com colchetes e com list, preservando a ordem e os valores repetidos.
Uma lista reúne elementos em uma sequência. Para criá-la, escreva os valores entre colchetes, separados por vírgulas. Use [] para uma lista vazia.
A lista mantém a ordem informada e aceita repetições: não coloca os valores em ordem crescente automaticamente. Ela também é mutável: seu conteúdo pode ser alterado depois.
Os comentários mostram o que cada print exibe.
duracoes = [30, 10, 30]
atividades = ["ler", "caminhar"]
pendencias = []
print(duracoes) # [30, 10, 30]
print(atividades) # ['ler', 'caminhar']
print(pendencias) # []Ao executar duracoes = [30, 10, 30], o Python cria a lista [10, 30, 30].
Você também pode usar list(...) para reunir os elementos de uma sequência.
caracteres = list("oi oi")
numeros = list(range(2, 5))
print(caracteres) # ['o', 'i', ' ', 'o', 'i']
print(numeros) # [2, 3, 4]
Cada seta liga um elemento da origem ao elemento correspondente na lista. O espaço também ocupa um lugar.
Associe cada expressão à lista que ela produz.
Toque em um item e depois no par correspondente.

Passo 2 de 8
Use índices, fatias e len para consultar listas e distinguir um elemento de uma lista de elementos.
Os índices e as fatias que você usou em textos também funcionam em listas. A diferença está no resultado: um índice consulta um elemento, como um número ou um texto; uma fatia obtém uma lista de elementos. Essas consultas não alteram a lista original.
![A lista dados contém 15, 'pausa', 30 e 10 nos índices 0, 1, 2 e 3. A consulta dados[1] aponta para o texto 'pausa'. A consulta dados[1:3] aponta para a lista ['pausa', 30].](https://cursa-json-routes.s3.amazonaws.com/learning-paths/pt/python/b730454e0225/level-03/tutorial-02/step-02/screen-01/item-02.webp)
O índice entrega o elemento; a fatia entrega uma lista com o trecho consultado.
len informa quantos elementos a lista contém, não quantos caracteres existem nos textos dentro dela.
dados = [15, "pausa", 30, 10]
print(dados[0]) # 15
print(dados[1]) # pausa
print(dados[-1]) # 10
print(dados[1:3]) # ['pausa', 30]
print(len(dados)) # 4
print(dados) # [15, 'pausa', 30, 10]Considere dados = [15, "pausa", 30, 10]. Quais são os resultados de dados[1] e dados[1:2], nessa ordem?
Uma fatia sempre resulta em uma lista, mesmo quando o trecho tem só um elemento ou está vazio. Use len no resultado para conferir a quantidade de elementos selecionados.
Compare o número 10, a lista [10] e a lista vazia [].
dados = [15, "pausa", 30, 10]
print(dados[3]) # 10
print(dados[3:4]) # [10]
print(len(dados[3:4])) # 1
print(dados[4:4]) # []
print(len(dados[4:4])) # 0
print(len(dados)) # 4: a lista original não mudouPara valores = [8, 3, 8], associe cada consulta ao resultado correspondente.
Toque em um item e depois no par correspondente.

Passo 3 de 8
Atualize uma posição existente da lista sem alterar seu tamanho nem os outros elementos.
Uma lista é mutável: podemos alterar seu conteúdo. Para substituir um elemento, escreva a posição à esquerda do sinal de igual e o novo valor à direita: lista[indice] = novo_valor.
A substituição mantém o comprimento da lista e não muda os outros elementos.
duracoes = [20, 35, 15]
duracoes[1] = 30
print(duracoes) # [20, 30, 15]
print(len(duracoes)) # 3![Comparação entre as listas [20, 35, 15] e [20, 30, 15]. Somente o valor no índice 1 muda de 35 para 30; os índices 0 e 2 permanecem iguais.](https://cursa-json-routes.s3.amazonaws.com/learning-paths/pt/python/b730454e0225/level-03/tutorial-02/step-03/screen-01/item-03.webp)
O valor 30 ocupa o lugar de 35. A lista continua com três elementos.
Complete o índice para substituir 40 por 45:
duracoes = [10, 25, 40]
duracoes[___] = 45A lista deve ficar [10, 25, 45].
Substituir não é acrescentar. Se a posição indicada não existir, a atribuição provoca IndexError, assim como uma consulta fora dos limites.
Esta lista tem três posições: 0, 1 e 2.
duracoes = [10, 25, 40]
duracoes[3] = 45 # IndexError: a posição 3 não existeAtenção
Usar um índice igual ao comprimento da lista não cria uma nova posição. A tentativa acima falha: nenhum elemento é acrescentado ou substituído.
Depois deste código, qual é o conteúdo de duracoes e quantos elementos ela tem?
duracoes = [10, 25, 40]
duracoes[0] = 15
Passo 4 de 8
Acrescente um valor ou um lote de valores ao final de uma lista e diferencie a alteração feita do retorno do método.
Um método é uma operação disponível em um valor. Para chamá-lo, use um ponto, o nome do método e os argumentos entre parênteses: valor.metodo(argumentos).
Nas listas, append(valor) acrescenta um elemento ao final. Já extend(sequencia) acrescenta cada elemento de outra sequência, na ordem em que aparece. Aqui, vamos usar outra lista como sequência.
Acompanhe as duas alterações na mesma lista de durações, em minutos.
duracoes = [15, 20]
duracoes.append(10)
print(duracoes) # [15, 20, 10]
duracoes.extend([5, 25])
print(duracoes) # [15, 20, 10, 5, 25]![Três estados da lista: primeiro [15, 20]; depois de append(10), [15, 20, 10]; depois de extend([5, 25]), [15, 20, 10, 5, 25]. Cada número ocupa uma posição separada.](https://cursa-json-routes.s3.amazonaws.com/learning-paths/pt/python/b730454e0225/level-03/tutorial-02/step-04/screen-01/item-03.webp)
append acrescenta um elemento; extend acrescenta os dois elementos do lote. Os valores anteriores mantêm suas posições.
A lista é duracoes = [15, 20]. Qual linha a altera para [15, 20, 10, 5]?
append e extend alteram a lista, mas não devolvem a lista atualizada: ambos retornam None.
Separe a chamada que altera os dados da consulta ao conteúdo. No exemplo, guardamos os retornos em outros nomes apenas para mostrar essa diferença.
duracoes = [15, 20]
retorno_append = duracoes.append(10)
print(retorno_append) # None
print(duracoes) # [15, 20, 10]
retorno_extend = duracoes.extend([5, 25])
print(retorno_extend) # None
print(duracoes) # [15, 20, 10, 5, 25]Atenção
Evite duracoes = duracoes.append(10) e duracoes = duracoes.extend([5, 25]). A alteração acontece, mas a atribuição faz duracoes passar a valer None.
Para continuar acessando a lista por esse nome, chame o método sem essa atribuição e depois consulte duracoes.
A intenção era mostrar [15, 20, 5], mas este código mostra None.
duracoes = [15, 20]
duracoes = duracoes.append(5)
print(duracoes)Por que duracoes termina com o valor None? Reescreva apenas a segunda linha para que, ao executar o código completo novamente, ele mostre a lista atualizada.
Escreva pelo menos 20 caracteres (0/20).

Passo 5 de 8
Teste se um valor está na lista e escolha ações conforme a presença ou a ausência de elementos.
Use in para verificar se um valor corresponde a algum elemento da lista. Use not in para verificar se ele está ausente.
Quando os elementos são textos, a busca considera cada elemento inteiro, não partes dele.
Os comentários mostram os resultados.
atividades = ["ler livro", "caminhar"]
print("caminhar" in atividades) # True
print("ler" in atividades) # False
print("ler livro" in atividades) # True
print("estudar" not in atividades) # TrueComplete a condição para evitar incluir novamente um valor que já está na lista:
atividades = ["ler livro", "caminhar"]
nova = "caminhar"
if nova ____ atividades:
atividades.append(nova)Em uma condição, [] é falsa e qualquer lista não vazia é verdadeira. O que importa é haver elementos: [0] é verdadeira, embora o número 0 sozinho seja falso.
Use if lista para agir quando houver elementos e if not lista para agir quando ela estiver vazia.
![Fluxo com a pergunta “Há elementos?”. A lista [0] segue pelo caminho Sim até a ação de if lista. A lista [] segue pelo caminho Não até a ação de if not lista.](https://cursa-json-routes.s3.amazonaws.com/learning-paths/pt/python/b730454e0225/level-03/tutorial-02/step-05/screen-03/item-02.webp)
Um único elemento, mesmo que seja zero, já torna a lista não vazia.
Neste código, as duas mensagens são exibidas.
duracoes = [0]
if duracoes:
print("Há durações registradas.")
pendencias = []
if not pendencias:
print("Não há pendências.")O código abaixo exibirá a mensagem "Sem dados".
duracoes = [0]
if not duracoes:
print("Sem dados")
Passo 6 de 8
Escolha entre pop, remove e del, acompanhe o conteúdo restante e use verificações antes de remover.
pop(indice) remove e retorna o elemento da posição indicada. Sem argumento, pop() remove e retorna o último elemento.
remove(valor) procura o valor e elimina apenas sua primeira ocorrência. A lista muda, mas o retorno é None.
Após uma remoção, os elementos seguintes se deslocam: seus índices diminuem em 1.
Compare o retorno guardado em cada variável com a lista que ficou.
valores = [10, 20, 10, 30]
retirado = valores.pop(1)
print(retirado) # 20
print(valores) # [10, 10, 30]
valores = [10, 20, 10, 30]
retorno = valores.remove(10)
print(retorno) # None
print(valores) # [20, 10, 30]![Comparação de duas remoções na lista [10, 20, 10, 30]. pop(1) retira 20 e deixa [10, 10, 30], retornando 20. remove(10) retira o primeiro 10 e deixa [20, 10, 30], retornando None. Nas listas finais, os índices são 0, 1 e 2.](https://cursa-json-routes.s3.amazonaws.com/learning-paths/pt/python/b730454e0225/level-03/tutorial-02/step-06/screen-01/item-03.webp)
O segundo 10 permanece após remove(10). Em ambos os casos, a lista passa de quatro para três elementos.
Leia o código e preveja os resultados antes de executá-lo no seu Python, se quiser conferir.
tarefas = ["ler", "revisar", "ler", "enviar"]
retorno = tarefas.remove("ler")
print(tarefas)
ultimo = tarefas.pop()
print(tarefas)
print(retorno)
print(ultimo)Informe a lista logo após remove e depois de pop. Quais valores ficam em retorno e ultimo?
Escreva pelo menos 20 caracteres (0/20).
del lista[indice] exclui o elemento dessa posição. É uma instrução, não um método: não usa ponto e não devolve o elemento para uma atribuição. Se você precisa guardar o elemento removido, use pop.
Use as condições já conhecidas para evitar uma remoção impossível.
tarefas = ["ler", "revisar"]
if tarefas:
ultima = tarefas.pop()
print(ultima) # revisar
if "ler" in tarefas:
tarefas.remove("ler")
print(tarefas) # []
valores = [10, 20, 30]
del valores[1] # O índice 1 existe nesta lista.
print(valores) # [10, 30]Atenção
Antes de pop() sem argumento, confira se a lista não está vazia. Antes de remove(valor), confira se o valor pertence à lista; se não pertencer, ocorre ValueError.
Para pop(indice) e del lista[indice], o índice precisa existir no momento da remoção; caso contrário, ocorre IndexError. Uma lista não vazia não garante que qualquer índice seja válido.
Associe cada intenção à operação ou à verificação adequada. Considere que indice é válido nas remoções por posição.
Toque em um item e depois no par correspondente.

Passo 7 de 8
Percorra uma lista, selecione valores e acrescente resultados calculados a outra lista, preservando os dados de origem.
Assim como um acumulador começa antes do laço, a lista de resultados começa vazia antes do for. A cada passagem, a variável ponto recebe um elemento de pontos, e append guarda o valor calculado no final de outra lista.
O laço consulta pontos e altera apenas dobros.
pontos = [8, 3, 6]
dobros = []
for ponto in pontos:
dobros.append(ponto * 2)
print(dobros) # [16, 6, 12]
print(pontos) # [8, 3, 6]Dica
Se dobros = [] ficar dentro do for, os resultados anteriores serão descartados a cada passagem. Inicialize antes; acrescente dentro.
Coloque em ordem as etapas para construir uma lista com o dobro de cada valor de uma lista de origem já criada.
Para guardar apenas alguns resultados, coloque um if antes do append. Se a condição for falsa, nada é acrescentado naquela passagem. Os resultados incluídos seguem a ordem do percurso, sem ordenar os valores.
pontos = [8, 3, 6]
dobros = []
for ponto in pontos:
if ponto >= 5:
dobros.append(ponto * 2)
print(dobros) # [16, 12]
print(pontos) # [8, 3, 6]![Rastreamento: dobros começa como []. Ao ler 8, passa a [16]; ao ler 3, continua [16]; ao ler 6, passa a [16, 12]. A origem permanece [8, 3, 6].](https://cursa-json-routes.s3.amazonaws.com/learning-paths/pt/python/b730454e0225/level-03/tutorial-02/step-07/screen-03/item-03.webp)
O 3 não gera resultado. O 16 aparece antes do 12 porque o 8 foi percorrido antes do 6.
Leia o código e preveja as saídas sem executá-lo.
valores = [4, 9, 2, 6]
resultados = []
for valor in valores:
if valor >= 6:
resultados.append(valor + 1)
print(resultados)
print(valores)O que cada print mostrará? Escreva as duas listas e explique por que a lista de origem permanece inalterada.
Escreva pelo menos 20 caracteres (0/20).

Passo 8 de 8
Execute uma atualização completa de durações no seu Python e confira o conteúdo da lista, os retornos das operações e os resultados do laço.
As atividades são representadas por suas durações em minutos. No seu Python, execute o código abaixo: ele consulta dados, corrige a segunda duração, inclui novas atividades e faz três remoções com critérios diferentes.
Depois, o laço seleciona durações de pelo menos 25 minutos e as converte em segundos em outra lista. Antes de executar, tente prever a lista final e o valor devolvido por pop.
As consultas iniciais acontecem antes das alterações. Na remoção com del, o índice 0 é válido porque ainda há elementos na lista.
duracoes = [20, 15, 30, 15]
print("Primeira:", duracoes[0])
print("Trecho:", duracoes[1:3])
duracoes[1] = 25
retorno_append = duracoes.append(10)
duracoes.extend([40, 5])
if 15 in duracoes:
duracoes.remove(15)
if duracoes:
removido = duracoes.pop()
print("Removido por pop:", removido)
del duracoes[0]
print("Atualizada:", duracoes)
print("Retorno de append:", retorno_append)
segundos = []
for minutos in duracoes:
if minutos >= 25:
segundos.append(minutos * 60)
print("Selecionadas em segundos:", segundos)
print("Origem depois do laço:", duracoes)Após executar o código, registre:
Escreva pelo menos 80 caracteres (0/80).
Se sua saída for diferente, execute novamente desde a criação de duracoes. Assim, as alterações não serão reaplicadas a uma lista já modificada.
Primeira: 20
Trecho: [15, 30]
Removido por pop: 5
Atualizada: [25, 30, 10, 40]
Retorno de append: None
Selecionadas em segundos: [1500, 1800, 2400]
Origem depois do laço: [25, 30, 10, 40]A condição do laço controla quais resultados entram em segundos. Ela não remove nada de duracoes. Por isso, 10 continua na origem, enquanto os demais valores geram resultados na mesma ordem do percurso.

O filtro seleciona valores maiores ou iguais a 25; a multiplicação por 60 converte minutos em segundos sem alterar a origem.
Resumo
Use o objetivo da operação para escolher a ferramenta.
Parabéns! Você concluiu: Organizar e atualizar dados em listas
Milhares de cursos online em vídeo, ebooks e áudiobooks.
Para testar seus conhecimentos no decorrer dos cursos online
Gerado diretamente na galeria de fotos do seu celular e enviado ao seu e-mail
Baixe nosso aplicativo pelo QR Code ou pelos links abaixo:.
+ de 10 milhões
de alunos
Certificado grátis e
válido em todo o Brasil
60 mil exercícios
gratuitos
4,8/5 classificação
nas lojas de apps
Cursos gratuitos em
vídeo, ebooks e audiobooks