Como concatenar duas ou múltiplas listas em Python
-
+
para concatenar duas listas em Python -
+=
para concatenar duas listas no lugar em Python -
O método
itertools.chain
concatenou duas listas em Python -
extend()
método para concatenar listas em Python -
[*a, *b]
método de desempacotamento na concatenação da lista Python - Conclusão
A list in Python é uma estrutura de dados que contém uma coleção ordenada de elementos.
Uma operação para colar duas listas é chamada concatenação. Você pode concatenar duas listas em Python no lugar* ou fora do lugar*.
Suponha que temos duas listas a serem concatenadas,
list1 = [1, 2, 3, 4]
list2 = [5, 6, 7, 8]
Poderíamos ter vários métodos para concatená-los, mas eles diferem no desempenho quando o comprimento aumenta ou quando o número de listas concatenadas aumenta.
Vamos introduzir estes diferentes métodos e dar-lhe a comparação do desempenho.
+
para concatenar duas listas em Python
O operador +
poderia concatenar duas listas e retornar uma nova lista.
>>> list1 = [1, 2, 3, 4]
>>> list2 = [5, 6, 7, 8]
>>> result = list1 + list2
>>> result
[1, 2, 3, 4, 5, 6, 7, 8]
+=
para concatenar duas listas no lugar em Python
+=
é semelhante ao método acima, mas irá alterar os dados da primeira lista em vigor.
>>> list1 = [1, 2, 3, 4]
>>> list2 = [5, 6, 7, 8]
>>> list1 += list2
>>> list1
[1, 2, 3, 4, 5, 6, 7, 8]
O método itertools.chain
concatenou duas listas em Python
String do módulo itertools
trata sequências consecutivas como uma única sequência,
>>> list1 = [1, 2, 3, 4]
>>> list2 = [5, 6, 7, 8]
>>> import itertools
>>> result = list(itertools.chain(list1, list2))
[1, 2, 3, 4, 5, 6, 7, 8]
itertools.chain
tem um construtor alternativo - intertools.chain.from_iterable()
. Ele tem um único argumento iterável cujos inputs são avaliados preguiçosamente.extend()
método para concatenar listas em Python
Listar o método extender
estende a lista anexando elementos do iterável.
>>> list1 = [1, 2, 3, 4]
>>> list2 = [5, 6, 7, 8]
>>> list1.extend(list2)
>>> list1
[1, 2, 3, 4, 5, 6, 7, 8]
Ele também altera os dados da lista de saída no local, ao invés de retornar uma nova lista.
[*a, *b]
método de desempacotamento na concatenação da lista Python
Desembalagem adicional como *
para operador de desempacotamento iterável e **
para operador de desempacotamento de dicionário são extraídos do Python 3.5 como explicado em PEP-0448.
>>> list1 = [1, 2, 3, 4]
>>> list2 = [5, 6, 7, 8]
>>> result = [*list1, list2]
>>> result
[1, 2, 3, 4, 5, 6, 7, 8]
Este método não poderia ser aplicável ao caso das listas N, a menos que você queira descompactar cada lista manualmente.
>>> A = [1,2,3]
>>> B = [4,5,6]
>>> C = [7,8,9]
>>> [*t for t in [A,B,C]]
SyntaxError: iterable unpacking cannot be used in comprehension
Conclusão
Versão | No lugar? | |
---|---|---|
a + b |
- | Não |
list(intertools.chain(a,b)) |
>=2.3 | Não |
[*a, *b] |
>=3.5 | Não |
a += b |
- | Sim |
a.extend(b) |
- | Sim |
Utilizamos módulo perfplot
para comapare o desempenho dos métodos acima.
Como mostrado no gráfico, os métodos a.extend(b)
e a+b
são quase os mesmos na performance e os melhores entre todos os métodos. O método list(chain(a,b))
tem a pior performance.
Aditya Raj is a highly skilled technical professional with a background in IT and business, holding an Integrated B.Tech (IT) and MBA (IT) from the Indian Institute of Information Technology Allahabad. With a solid foundation in data analytics, programming languages (C, Java, Python), and software environments, Aditya has excelled in various roles. He has significant experience as a Technical Content Writer for Python on multiple platforms and has interned in data analytics at Apollo Clinics. His projects demonstrate a keen interest in cutting-edge technology and problem-solving, showcasing his proficiency in areas like data mining and software development. Aditya's achievements include securing a top position in a project demonstration competition and gaining certifications in Python, SQL, and digital marketing fundamentals.
GitHub