Curso de Python / Listas: adicionar, remover, ordenar e copiar itens
Uma lista armazena itens em ordem e permite acrescentar, alterar e remover elementos. Ao trabalhar com listas, diferencie as operações que modificam o objeto original das que retornam uma nova lista, principalmente na ordenação e na cópia de dados.
Escolha a operação de acordo com o objetivo
Use colchetes para criar uma lista, como [3500, 8000, 2500]. O primeiro índice é 0, e um índice pode ser usado para substituir um elemento. A lista pode conter valores repetidos e tipos diferentes; para uma soma de despesas, porém, mantenha o significado e a unidade dos valores consistentes.
| Objetivo | Operação | Comportamento importante |
|---|---|---|
| Acrescentar um item | items.append(value) |
Uma lista recebida como argumento vira um único item aninhado |
| Acrescentar vários itens | items.extend(values) |
Adiciona cada elemento do iterável |
| Remover por posição | items.pop(index) |
Retorna o item removido; sem índice, usa o último |
| Remover por valor | items.remove(value) |
Remove somente a primeira ocorrência; falha se o valor não existir |
Um iterável fornece elementos que podem ser percorridos, como outra lista. Assim, append([1, 2]) acrescenta uma lista como item, enquanto extend([1, 2]) acrescenta dois números. Esses métodos não têm o mesmo efeito sobre a estrutura. O tutorial oficial sobre listas apresenta os métodos e seus resultados.
Execute as alterações e acompanhe a ordenação
Salve o código completo abaixo em UTF-8 como lists.py, na pasta do projeto. Execute python lists.py no ambiente selecionado. No macOS ou Ubuntu, fora de um ambiente virtual, use python3 se esse for o comando da instalação. Não são necessários pacotes adicionais nem arquivos de entrada.
amounts = [3500, 8000, 2500]
amounts.append(1000)
amounts[0] = 4000
removed = amounts.pop()
print(amounts, removed)
print(sorted(amounts))
print(amounts)
amounts.sort()
print(amounts)
A saída esperada é:
[4000, 8000, 2500] 1000
[2500, 4000, 8000]
[4000, 8000, 2500]
[2500, 4000, 8000]
append(1000) acrescenta um quarto valor. A atribuição ao índice 0 troca 3500 por 4000. O pop() sem argumento retira o último item e o devolve, por isso removed vale 1000 e a lista volta a ter três elementos.
Compare então a segunda e a terceira linhas de saída: sorted(amounts) apresenta uma ordem crescente, mas a lista original ainda aparece na ordem anterior. A última linha mostra a lista depois de amounts.sort(), que modifica o próprio objeto.
Diferencie alteração, retorno e cópia
| Operação | Retorno | Efeito na lista original |
|---|---|---|
items.sort() |
None |
Modifica a ordem |
sorted(items) |
Uma nova lista | Preserva a ordem anterior |
Não escreva amounts = amounts.sort() esperando receber a lista ordenada. O método modifica a lista, mas seu retorno é None; a atribuição passa a ligar o nome amounts a esse retorno. Se quiser uma nova lista, use ordered = sorted(amounts). Se quiser alterar a existente, chame amounts.sort() sem atribuir o resultado. A referência de ordenação compara as duas opções.
other = amounts não copia a lista: os dois nomes se referem ao mesmo objeto. Já copied = amounts[:] cria uma nova lista externa, mas faz uma cópia rasa. Se um elemento for outra lista mutável, ele continuará compartilhado entre a original e a cópia.
Por exemplo, depois de items = [[3500], [8000]] e copied = items[:], uma alteração como copied[0].append(500) também será visível em items[0]. Trocar um elemento externo de copied, por outro lado, não troca a posição correspondente de items. A documentação de cópias rasas e profundas explica essa diferença. Ordenar também não duplica os objetos internos.
Confira listas vazias e mudanças durante a repetição
Acessar o índice 0 de uma lista vazia ou executar pop() nela provoca IndexError. remove() provoca ValueError quando o valor procurado não existe. Decida se a ausência de dados é válida ou se viola uma regra do programa antes de escolher como tratar cada situação.
Remover elementos da mesma lista que está sendo percorrida pode fazer o laço pular itens, pois as posições mudam. Quando a tarefa for filtrar valores, percorra uma cópia ou construa uma nova lista com os itens que devem permanecer. Isso torna a regra mais clara do que depender de índices que mudam durante o processo.
- Adicione
0ao final dos três valores iniciais deamountse execute novamente o programa. - Após as operações de inclusão, alteração e remoção do exemplo, a lista passa a ter quatro itens. Sua soma é
14500, igual à soma dos três valores originais depois da troca para4000, mas a ordem crescente começa com0. - Remova o zero que você acrescentou e confirme novamente as quatro linhas de saída originais.
Uma soma igual não prova que a estrutura dos dados é a mesma. Confira também a quantidade de elementos e a ordem, especialmente quando o resultado será usado por outra etapa do programa.




