Como concatenar duas listas em Python
introdução
list concatenação o ato de criar uma única lista a partir de várias listas menores por daisy acorrentá-las juntas.
Existem muitas maneiras de concatenar listas em Python. Especificamente, neste artigo, vamos rever como concatenar duas listas em Python usando o operador plus, operador unpack, operador multiply, manual para concatenação em loop, a funçãoitertools.chain()
e o método da lista inbuilt .
Em todos os trechos de código abaixo, faremos uso da seguinte lista:
list_a = list_b =
Além de Lista de operadores de Concatenação
O mais simples e direto caminho para concatenar duas listas em Python é o sinal de mais (+
) operador:
list_c = list_a + list_bprint (list_c)
Descompactar Lista Operador de Concatenação
Este método permite que você junte-se a várias listas. É um recurso bastante novo e apenas disponível a partir do Python 3.6+. O operador de desempacotamento, como o nome indica, desemboca um objeto iterable
em seus elementos. Desempacotar é útil quando queremos gerar uma infinidade de argumentos a partir de uma única lista. Por exemplo:
def foo(a, b, c, d): return a + b + c + d# We want to use the arguments of the following list with the foo function.# However, foo doesn't take a list, it takes 4 numbers, which is why we need to# unpack the list.foo(*list_a)# This is the same as if we were to call foo(1,2,3,4)
10
In a nutshell, we use the list constructor () and generate the elements of the new list in order by unpacking multiple lists one after another:
list_c = # This is the same as:# list_c = print (list_c)
Multiplique Lista Operador de Concatenação
A multiplicar (*
) operador é um caso especial de lista de concatenação em Python. Ele é usado para repetir uma lista inteira várias vezes (é por isso que é indicado com um operador de multiplicação):
print(list_a * 2)
para loop Lista de Concatenação
neste método nós vamos passar uma lista ao acrescentar a cada um de seus elementos para a outra lista, um por um. Quando o loop terminar, você terá uma única lista com todos os elementos desejados:
for i in list_b: list_a.append(i)print (list_a)
itertools.Chain () List Concatenation
This method works with iterables
. Ele cria e retorna um iterador que mais tarde pode ser usado para construir a lista encadeada (pense nisso como uma seta que apenas memoriza a ordem dos elementos na lista resultante):
# If we were to call itertools.chain() like soiterator = itertools.chain(, )# Basically the iterator is an arrow which can give us the next() element in a sequence, so if we call a list() constructor with said iterable, it works like this:list(iterator)
Sob o capô, algo ao longo dessas linhas é o que acontece:
# Iterator: The next element in this list is 1 , ^# Iterator: The next element in this list is 2, ^# Iterator: The next element in this list is 3 , ^# Iterator: The next element in this list is 4 , ^# So the list() call looks something like:list()# Keep in mind this is all pseudocode, Python doesn't give the developer direct control over the iterator
Para este método, você precisará importar itertools
:
import itertoolslist_c = list(itertools.chain(list_a, list_b))print (list_c)
extend() Lista de Concatenação
Este é aa interna é uma função que pode ser usada para expandir a lista. Aqui estamos expandindo a primeira lista, adicionando elementos da segunda lista a ela:
list_a.extend(list_b)print (list_a)