Cómo agregar múltiples valores a una lista en Python

3 minutos de lectura

avatar de usuario
cambiar mi nombre

Estoy tratando de descubrir cómo agregar múltiples valores a una lista en Python. Sé que hay pocos métodos para hacerlo, como ingresar manualmente los valores o poner la operación de agregar en un for bucle, o el append y extend funciones

Sin embargo, me pregunto si hay una forma más ordenada de hacerlo. ¿Quizás un determinado paquete o función?

avatar de usuario
dar un toque

Puedes usar el método de secuencia list.extend para extender la lista por múltiples valores de cualquier tipo de iterable, ya sea otra lista o cualquier otra cosa que proporcione una secuencia de valores.

>>> lst = [1, 2]
>>> lst.append(3)
>>> lst.append(4)
>>> lst
[1, 2, 3, 4]

>>> lst.extend([5, 6, 7])
>>> lst.extend((8, 9, 10))
>>> lst
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> lst.extend(range(11, 14))
>>> lst
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]

Entonces puedes usar list.append() para anexar un solo valor, y list.extend() para anexar múltiple valores.

  • Un poco complicado presentar generadores a alguien el día 1 de usar Python.

    – Daniel Rosemann

    25 de noviembre de 2013 a las 14:59

  • @DanielRoseman Mi punto es que los valores pueden provenir de ningún tipo de secuencia iterable.

    – dar un toque

    25/11/2013 a las 15:00

  • Tenga en cuenta que extender no mantiene la estructura del elemento que agrega en comparación con append(). Con su ejemplo usando append, obtendría [1, 2, 3, 4, [5, 6, 7], (8, 9, 10), range(11, 14)]. Pitón 3

    – Yohan Obadía

    16 de marzo de 2017 a las 14:07

  • @YohanObadia Si ese fue el caso de Python 3 en el ’17, ya no es el caso: Python 3.7.7 hace exactamente lo que describe poke.

    – Publicar169

    8 de mayo de 2020 a las 16:09

  • @YohanObadia Eso no tiene sentido. Append agrega UN ELEMENTO, por lo que “mantiene la estructura”. Pero eso es un duh, de verdad. Y @ Post169, nada cambió entre 2017 y hoy, extender y agregar aún se comportan de la misma manera, Yohan simplemente no entendió qué es qué.

    – Jürgen A. Erhard

    8 de agosto de 2021 a las 7:45

Otro qué el append función, si por “valores múltiples” se refiere a otra lista, simplemente puede concatenarlos así.

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a + b
[1, 2, 3, 4, 5, 6]

Si echas un vistazo a la documentos oficialesverás justo debajo append, extend. Eso es lo que buscas.

También hay itertools.chain si está más interesado en una iteración eficiente que terminar con una estructura de datos completamente poblada.

letter = ["a", "b", "c", "d"]
letter.extend(["e", "f", "g", "h"])
letter.extend(("e", "f", "g", "h"))
print(letter)
... 
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'e', 'f', 'g', 'h']
    

si el número de elementos se guardó en una variable, diga n. puede usar la comprensión de listas y el signo más para la expansión de listas.

lst = ['A', 'B']
n = 1
new_lst = lst + ['flag'+str(x) for x in range(n)]
print(my_lst)

>>> ['A','B','flag0','flag1']

avatar de usuario
ivan ivanov

No puedo agregar un comentario, pero tampoco puedo guardar silencio si la cantidad de elementos se guardó en una variable, digamos n. puede usar la comprensión de listas y el signo más para la expansión de listas.

lst = ['A', 'B']
n = len(lst)
my_lst = lst + ['flag'+str(x) for x in range(n)]
print(my_lst)

[‘A’, ‘B’, ‘flag0’, ‘flag1’]

Una forma de solucionar este tipo de problema es:

Aquí estamos insertando una lista a la lista existente creando una variable nuevos_valores.

Tenga en cuenta que estamos insertando los valores en el segundo índicees decir a[2]

a = [1, 2, 7, 8]

new_values = [3, 4, 5, 6]

a.insert(2, new_values)

print(a)

Pero aquí el método insert() agregará los valores como una lista.

Así que aquí va otra forma de hacer lo mismo, pero esta vez insertaremos los valores entre los elementos.

a = [1, 2, 7, 8]

a[2:2] = [3,4,5,6]

print(a)

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad