2
respostas

Como utilizar o comando .pop para deletar mais de um item do fim da lista para o começo?

Tentei utilizar o comando Acessorios.pop(-1:-3) para tentar apagar mais de um item do fim da lista para o começo. Mas aparece um erro de sintax, como seria possível fazer isso?

2 respostas

Olá Michel! Tudo bem contigo?

O método pop não permite que você remova itens de uma lista por meio de um slice, apenas pelo índice, por exemplo:

# removendo o último elemento
acessorios.pop()

# removendo o penúltimo elemento
acessorios.pop(-2)

Para remover mais de um elemento, da forma como está tentando fazer, você pode utilizar o método del. Entretanto, a forma que você está fazendo o slice não dará muito certo. Se a sua intenção for remover o penúltimo e o antepenúltimo item da lista você deve fazer um slice de [-3 : -1], mas caso sua intenção seja remover do antepenúltimo ao último, você pode fazer o slice de [-3 : ]. Vou deixar aqui esses exemplos utilizando o método del:

# removendo o penúltimo e antepenúltimo 
del acessorios[-3:-1]

# removendo do antepenúltimo ao último
del acessorios[-3:]

Espero que isso te ajude! Qualquer dúvida estou por aqui, tá bem?

Bons estudos! :)

Olá Michel, tudo bem? Espero que sim!

O método pop só remove um item por vez, portanto não é possível passar um range como argumento, somente um único index.

Se deseja remover mais de um item, pode fazer um laço for:

for i in range(3):
    Acessorios.pop()

Dessa forma, serão removidos os 3 últimos elementos, começando pelo último. É sempre do último porque por padrão o pop() remove o último valor da lista.

Bons estudos!