como posso adicionar ao contrário? jiboia

.append A função adiciona elementos à lista. Como posso adicionar elementos à lista? Ao contrário? Então esse índice zero é um novo valor, e os valores antigos sobem no índice? O que faz

[a,b,c,d,e]
O que eu gostaria.

[e,d,c,b,a]
Muito obrigado.

 2
Author: Web Master, 2012-06-13

6 answers

Suponha que tem uma lista.a, a = [1, 2, 3] Agora suponha que você se pergunta Que tipo de coisas você pode fazer a essa lista:
dir(a)

Hmmm... o que será que isto faz?..

help(a.insert)

Insira o objecto antes do Índice, dizes tu? Isso parece-se muito com o que eu quero fazer! Se eu quiser inserir algo no início da lista, isso seria antes de índice 0. Que objecto quero inserir? Vamos tentar o 7...

a.insert(0, 7)
print a
Bem, olha para aquele 7. a frente da lista!

O TL; o DR: dir() vai deixá-lo ver o que está disponível, help() vai mostrar-lhe como funciona, e depois pode brincar com ele e ver o que faz, ou procurar alguma documentação, uma vez que agora sabe como se chama a funcionalidade que deseja.

 17
Author: kindall, 2012-06-12 22:59:05

Seria mais eficiente usar um deque(fila de fim duplo) para isto. Inserir no índice 0 é extremamente caro em listas, uma vez que cada elemento deve ser deslocado sobre o qual requer O(N) Tempo de execução, em um deque a mesma operação é O(1).

>>> from collections import deque
>>> x = deque()
>>> x.appendleft('a')
>>> x.appendleft('b')
>>> x
deque(['b', 'a'])
 6
Author: jamylak, 2012-06-12 23:10:04

Usar somelist.insert(0, item) para colocar item no início de somelist, mudando todos os outros elementos para baixo. Note que para listas grandes esta é uma operação Muito Cara. Considere a utilização de Duque em vez disso, se irá adicionar itens ou remover itens de ambos os extremos da sequência.

 4
Author: cdhowie, 2012-06-12 22:34:07

Podes fazer

your_list=['New item!!']+your_list

Mas o método de inserção também funciona.

 2
Author: user1357159, 2012-06-12 22:50:32

Se usar o comando list insert do Python com 0 para o valor da posição, irá inserir o valor no topo da lista, inserindo assim em ordem inversa:

your_list.insert(0, new_item)
 2
Author: Dan Breen, 2012-06-13 01:27:27

Use o seguinte (assumindo que o x é o que deseja pré-enviar):

your_list = [x] + your_list

Ou:

your_list.insert(0, x)
 0
Author: Fethi Dilmi, 2017-07-10 13:52:38