Para adicionar um elemento a uma lista (array) de tipo lista em Python, ou para combinar outra lista, usar os métodos de lista anex(), extend(), e insert(). Também se pode usar o operador + ou fatia para especificar uma posição e atribuí-la.
A seguinte informação é fornecida aqui.
- Acrescentar elementos no final:
append()
- Fusão de outra lista ou tuple no final (concatenação):
extend()
,+
operador - Acrescentar (inserir) um elemento na posição especificada.:
insert()
- Acrescentar (inserir) outra lista ou tuple na posição especificada:fatia
Acrescentar elementos no final: append()
Usando o método append() da lista, pode adicionar elementos ao fim (último). Se desejar adicioná-lo a uma posição diferente do fim, tal como o topo, utilize insert() como descrito abaixo.
l = list(range(3))
print(l)
# [0, 1, 2]
l.append(100)
print(l)
# [0, 1, 2, 100]
l.append('new')
print(l)
# [0, 1, 2, 100, 'new']
As listas são também acrescentadas como um único elemento. Elas não são combinadas.
l.append([3, 4, 5])
print(l)
# [0, 1, 2, 100, 'new', [3, 4, 5]]
Fusão de outra lista ou tuple no final (concatenação): extend(), +operador
Com o método de lista alargada(), pode combinar outra lista ou tuple no fim (o fim). Todos os elementos serão anexados ao fim da lista original.
l = list(range(3))
print(l)
# [0, 1, 2]
l.extend([100, 101, 102])
print(l)
# [0, 1, 2, 100, 101, 102]
l.extend((-1, -2, -3))
print(l)
# [0, 1, 2, 100, 101, 102, -1, -2, -3]
Note-se que cada carácter (elemento) é adicionado à cadeia um carácter de cada vez.
l.extend('new')
print(l)
# [0, 1, 2, 100, 101, 102, -1, -2, -3, 'n', 'e', 'w']
Também é possível concatenar utilizando o método + operador em vez do método extend().
+ operador, uma nova lista é devolvida.+=
Isto também lhe permitirá adicioná-la a uma lista existente.
l2 = l + [5, 6, 7]
print(l2)
# [0, 1, 2, 100, 101, 102, -1, -2, -3, 'n', 'e', 'w', 5, 6, 7]
l += [5, 6, 7]
print(l)
# [0, 1, 2, 100, 101, 102, -1, -2, -3, 'n', 'e', 'w', 5, 6, 7]
Acrescentar (inserir) um elemento na posição especificada.: insert()
O método de lista inserir() pode adicionar (inserir) um elemento numa posição especificada.
O primeiro argumento especifica a posição, e o segundo argumento especifica o elemento a ser inserido. A primeira posição (inicial) é 0; para valores negativos, -1 é a última posição (final).
l = list(range(3))
print(l)
# [0, 1, 2]
l.insert(0, 100)
print(l)
# [100, 0, 1, 2]
l.insert(-1, 200)
print(l)
# [100, 0, 1, 200, 2]
Tal como no Apêndice(), a lista é acrescentada como um único elemento. Não será fundida.
l.insert(0, [-1, -2, -3])
print(l)
# [[-1, -2, -3], 100, 0, 1, 200, 2]
Note-se que a insert() não é uma operação eficiente porque requer os seguintes custos. Ver a seguinte página no wiki oficial para a complexidade computacional das várias operações da lista.O(n)
O(1)
O tipo deque é fornecido no módulo de colecções padrão da biblioteca como um tipo para adicionar elementos ao topo a este custo. Por exemplo, se quiser tratar os dados como uma fila (FIFO), é mais eficiente utilizar o deque.
Acrescentar (inserir) outra lista ou tuple na posição especificada: fatia
Se especificar um intervalo com uma fatia e atribuir outra lista ou tuple, todos os elementos serão acrescentados (inseridos).
l = list(range(3))
print(l)
# [0, 1, 2]
l[1:1] = [100, 200, 300]
print(l)
# [0, 100, 200, 300, 1, 2]
Também se pode substituir o elemento original. Todos os elementos da gama especificada serão substituídos.
l = list(range(3))
print(l)
# [0, 1, 2]
l[1:2] = [100, 200, 300]
print(l)
# [0, 100, 200, 300, 2]