Como mesclar listas com Python extend
O Python extend permite que programadores adicionem elementos de uma segunda lista a uma lista já existente. É importante notar que os elementos a serem anexados são adicionados ao final da lista. Para adicionar um elemento em um índice específico de uma lista ou anexar elementos individualmente, você deve usar o Python insert
ou Python append
.
Função e sintaxe do Python extend
O método extend()
em Python opera de maneira simples. Ele adiciona uma segunda lista ao final de uma lista especificada, ou seja, ele estende a primeira lista adicionando elementos de uma segunda lista. Esse processo é comumente chamado de concatenação em programação. A sintaxe de extend()
é simples:
lista.extend(lista2)
pythonNesse exemplo, os elementos de lista2
são adicionados ao final de lista
. No entanto, uma nova lista com todos os elementos não é retornada. Em vez disso, a lista original é diretamente modificada. A segunda lista, contudo, não é modificada, ao contrário da original. A funcionalidade de extend()
é ilustrada no exemplo a seguir:
lista = ["um", "dois", "três"]
lista2 = ["quatro", "cinco", "seis"]
lista.extend(lista2)
print(lista) # saída: ['um', 'dois', 'três', 'quatro', 'cinco', 'seis']
lista.extend([7, 8, 9])
print(lista) # saída: ['um', 'dois', 'três', 'quatro', 'cinco', 'seis', 7, 8, 9]
pythonComo pode-se perceber, nesse código o método se comporta conforme o esperado. Você pode criar a lista a ser anexada como um objeto, com antecedência, ou passá-la como um parâmetro ao invocar o método. O exemplo demonstra que os elementos nas listas a serem anexadas podem ter qualquer tipo de dado. Isso é possível porque uma lista em Python pode ser heterogênea, ou seja, conter elementos de diferentes tipos de dados.
Embora extend()
seja mais usado para concatenar duas listas, você pode aplicar o método para atingir outros objetivos. Além de listas como parâmetros, o Python extend aceita objetos iteráveis (objetos contendo elementos sobre os quais se pode iterar) como entrada. Esses iteráveis incluem listas em Python, strings em Python e dicionários em Python. Quando extend()
é chamado, qualquer iterável pode ser passado como parâmetro. Os componentes do iterável são, então, adicionados à lista, um de cada vez. Esse recurso é ilustrado no exemplo a seguir.
chars = ['a', 'b', 'c']
string = "def"
chars.extend(string)
print(chars) # Saída: ['a', 'b', 'c', 'd', 'e', 'f']
pythonAqui, uma string de caracteres foi passada como argumento. Os componentes individuais da string (caracteres) foram adicionados à lista um de cada vez.
Alternativas ao Python extend
O método extend é uma solução elegante para adicionar elementos de uma lista a outra. Mas existem algumas alternativas que você também deve conhecer.
Operador de adição
O operador de adição (sinal de mais) é um dos operadores em Python mais comuns, sendo predominantemente usado para somar dois números. No entanto, ele pode ser usado para outros propósitos, incluindo na junção de listas. Com o operador de adição, é possível mesclar qualquer número de listas ao mesmo tempo. Isso é ilustrado no exemplo a seguir:
europa = ["Alemanha", "Finlândia"]
asia = ["China", "Índia"]
africa = ["Sudão", "Mali"]
paises = europa + asia + africa
print(europa) # saída: ['Alemanha', 'Finlândia']
print(asia) # saída: ['China', 'Índia']
print(africa) # saída: ['Sudão', 'Mali']
print(paises) # saída: ['Alemanha', 'Finlândia', 'China', 'Índia', 'Sudão', 'Mali']
pythonComo observado, a abordagem alternativa usando o operador de adição (+
) retorna um resultado quase idêntico ao método extend()
. No entanto, há uma diferença crucial entre os dois: ao contrário de extend()
, o operador de adição não modifica as listas originais; em vez disso, ele gera e retorna uma nova lista. Como um novo objeto de lista é criado na memória quando se usa o operador de adição, ele pode ser considerado menos eficiente se comparado ao extend()
ao mesclar duas listas. Isso deve ser levado em consideração se você estiver trabalhando com listas muito grandes ou se quiser que o seu programa seja o mais eficiente possível.
Usar o operador de concatenação (+=
) em vez do operador de adição modifica a lista original sem criar uma nova lista, evitando assim perdas de eficiência. No entanto, é importante notar que extend()
e +=
podem não se comportar uniformemente para todos os iteráveis.
Método append
O método append
tem funcionalidade semelhante ao extend()
, mas possui uma característica distinta: ele é capaz de adicionar um único elemento a uma lista. Consequentemente, não é possível passar um iterável como parâmetro para esse método. Vamos ilustrar isso com o exemplo a seguir:
lista = [0, 1, 1, 2]
lista.extend([3])
print(lista) # saída: [0, 1, 1, 2, 3]
lista.append(5)
print(lista) # saída: [0, 1, 1, 2, 3, 5]
pythonAqui, extend()
e append()
produzem o mesmo resultado, embora com uma ligeira diferença. Com append()
, você não precisa especificar o elemento a ser adicionado entre colchetes. No entanto, ao usar append()
para adicionar múltiplos elementos à lista, você precisa iterar sobre uma lista existente usando um Python loop for. Portanto, append()
é útil apenas se for lidar com um único elemento, podendo não ser adequado para adicionar múltiplos elementos de forma eficiente.
Quer publicar seu site ou aplicação web de forma rápida e fácil usando o GitHub? Então o Deploy Now da IONOS é a plataforma perfeita para você.