C贸mo concatenar dos listas en Python

    Introducci贸n

    Concatenaci贸n de listas el acto de crear una sola lista a partir de varias listas m谩s peque帽as encaden谩ndolas en cadena.

    Hay muchas formas de concatenar listas en Python. Espec铆ficamente, en este art铆culo, veremos c贸mo concatenar dos listas en Python usando el operador m谩s, el operador desempaquetar, el operador multiplicar, el manual para concatenaci贸n de bucles, itertools.chain() funci贸n y el m茅todo de lista incorporado extend().

    En todos los fragmentos de c贸digo a continuaci贸n, usaremos las siguientes listas:

    list_a = [1, 2, 3, 4]
    list_b = [5, 6, 7, 8]
    

    Concatenaci贸n de listas de operadores Plus

    La forma m谩s simple y directa de concatenar dos listas en Python es el plus (+) operador:

    list_c  = list_a + list_b
    print (list_c)
    
    [1, 2, 3, 4, 5, 6, 7, 8]
    

    Desembalaje de la concatenaci贸n de la lista de operadores

    Este m茅todo le permite unirse a varias listas. Es una caracter铆stica bastante nueva y solo est谩 disponible en Python 3.6+. El operador de desembalaje, como su nombre lo indica, desembala un iterable objeto en sus elementos. Desempaquetar es 煤til cuando queremos generar una gran cantidad de argumentos a partir de una sola lista. Por ejemplo:

    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
    

    En pocas palabras, usamos el constructor de listas ([a,b..]) y genere los elementos de la nueva lista en orden desempaquetando varias listas una tras otra:

    list_c  = [*list_a, *list_b, *list_a]
    # This is the same as:
    # list_c  = [1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4]
    print (list_c)
    
    [1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4]
    

    Multiplicar la concatenaci贸n de listas de operadores

    El multiplicar (*) es un caso especial de concatenaci贸n de listas en Python. Se usa para repetir una lista completa varias veces (por eso se indica con un operador de multiplicaci贸n):

    print(list_a * 2)
    
    [1, 2, 3, 4, 1, 2, 3, 4]
    

    para la concatenaci贸n de listas de bucles

    En este m茅todo, revisaremos una lista mientras agregamos cada uno de sus elementos a otra lista uno por uno. Cuando termine el ciclo, tendr谩 una 煤nica lista con todos los elementos deseados:

    for i in list_b:
        list_a.append(i)
    print (list_a)
    
    [1, 2, 3, 4, 5, 6, 7, 8]
    

    itertools.chain () Lista de concatenaci贸n

    Este m茅todo funciona con iterables. Construye y devuelve un iterador que luego se puede usar para construir la lista encadenada (piense en ello como una flecha que simplemente memoriza el orden de los elementos en la lista resultante):

    # If we were to call itertools.chain() like so
    iterator = itertools.chain([1, 2], [3, 4])
    
    # 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)
    

    Debajo del cap贸, algo en este sentido es lo que sucede:

    # Iterator: The next element in this list is 1 
    [1, 2], [3, 4]
     ^
    # Iterator: The next element in this list is 2
    [1, 2], [3, 4]
        ^
    # Iterator: The next element in this list is 3 
    [1, 2], [3, 4]
             ^
    # Iterator: The next element in this list is 4 
    [1, 2], [3, 4]
                ^
    # So the list() call looks something like:
    list([1,2,3,4])
    
    # Keep in mind this is all pseudocode, Python doesn't give the developer direct control over the iterator
    

    Para este m茅todo, necesitar谩 importar itertools:

    import itertools
    
    list_c  = list(itertools.chain(list_a, list_b))
    print (list_c)
    
    [1, 2, 3, 4, 5, 6, 7, 8]
    

    extender () Lista de concatenaci贸n

    Esta es una funci贸n incorporada que se puede usar para expandir una lista. Aqu铆 estamos expandiendo la primera lista agregando elementos de la segunda lista:

    list_a.extend(list_b)
    
    print (list_a)
    
    [1, 2, 3, 4, 5, 6, 7, 8]
    

    Conclusi贸n

    En este art铆culo, hemos repasado cinco formas de concatenar dos listas en Python: usando el operador m谩s, el operador desempaquetar, el operador multiplicar, un bucle for, itertools.chain() y extend().

     

    Etiquetas:

    Deja una respuesta

    Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *