6 métodos para trabalhar com listas em Python

Métodos append, extend, insert, remove, pop e clear

Listas

Sabemos que no Python podemos utilizar diversos tipos de dados para agrupar valores, um dos mais versáteis é o tipo list . As listas são escritas com itens separados por vírgulas e delimitados entre colchetes [ ] . Os itens podem ser de tipos de dados diferentes, apesar de na maioria das vezes utilizarmos somente um tipo. Afinal, se estamos criando uma lista de itens de compra, um elemento somente numérico não faria muito sentido no meio de strings, não é mesmo?

Vejamos alguns exemplos de listas:

Assim como outros tipos de dados sequenciais, listas utilizam índices para acessar elementos específicos e podem ser subdivididas (fatiadas) utilizando dois pontos (:) e o intervalo dos índices.

Todas as operações chamadas de "slice" retornam novas listas com os elementos que possuem os índices requisitados. Isso significa que ocorre uma shallow copy, veja:

Listas também podem ser concatenadas de modo direto com o operador + , não vá se confundir achando que isso realizará a soma numérica dos inteiros:

Ao contrário de strings, as listas são mutáveis, isto é, podemos modificar o conteúdo de seus elementos:

Agora que já sabemos como criar listas e até a modificar os valores, vamos aprender os métodos principais para manipular listas:

Principais métodos para manipular listas

1. list.append(x)

O método append adiciona um item ao final da lista. É o equivalente a a[len(a):] = [x]. Esse método só adiciona um elemento por vez, para adicionar mais de um elemento precisamos utilizar um loop.

Também é possível adicionar uma lista a outra lista:

2. list.extend(iterable)

O método extend também serve para adicionar mais elementos a uma lista. Seria o equivalente a a[len(a):] = iterable . Vejam o exemplo anterior se tivéssemos utilizado o método extend:


Aqui há um detalhe. Caso você adicione uma string "solta", o método irá trabalhar como se a string fosse uma lista de caracteres. Vejam:

3. list.insert(i,x)

O método insert insere um item em uma determinada posição da lista. O primeiro argumento é o índice do elemento anterior a inserção, o segundo é o elemento propriamente dito. Portanto, a.insert(0, x)irá inserir o elemento x no início da lista. Já o a.insert(len(a), x) funcionaria como um a.append(x)inserindo o elemento x ao final da lista.

Exemplos novamente com a lista de animais:


O método insert aceita string literais como parâmetro, adicionando o elemento diretamente na lista. Observe a diferença do que ocorre ao adicionar uma lista com somente um elemento utilizando o insert.

4. list.remove(x)

O método remove retira da lista o primeiro elemento cujo valor seja igual a x. Ou seja, caso a lista possua vários elementos iguais a x, você precisará realizar essa operação várias vezes. Esse método dispara uma exceção do tipo ValueError para o caso de não encontrar o elemento.

Ainda com o nosso exemplo de animais:


Caso você tente realizar a operação várias vezes, irá se deparar com o seguinte erro:

5.list.pop([i])

O método pop deve ser utilizado para remover um elemento com um índice específico. Ou seja, ao utilizar a.pop(2), o elemento de índice 2 será removido e também retornado pelo método, ou seja, você poderá atribuir esse valor para alguma variável de forma a utilizá-la.

Caso nenhum índice seja passado como parâmetro, o método pop() irá retornar o último elemento da lista.


6. list.clear()

O método clear é mais radical, remove todos os elementos de uma lista. Você utilizará em programas maiores para garantir uma determinada lista temporária foi esvaziada. Seria o equivalente a del a[:]

Outros métodos:

Além desses seis que mostramos, existem muitos outros relacionados a índices, ordenação, contagem ou reversão da ordem da lista.

O python nos dá uma flexibilidade muito grande, sendo possível realizar operações com finalidades idênticas de diversas formas. Claro que quanto mais métodos você conhecer mais eficiente conseguirá escrever programas.

Os métodos que mostramos nesse post podem ser testados através do Google Colab ou localmente. Teste aqui: