Pregunta ¿Cómo agregar un número entero a cada elemento en una lista?


Si tengo list=[1,2,3] y quiero agregar 1 a cada elemento para obtener la salida [2,3,4], ¿Como podría hacerlo?

Supongo que usaría un bucle for pero no estoy seguro exactamente cómo.


74
2018-02-16 01:52


origen


Respuestas:


new_list = [x+1 for x in my_list]

89
2018-02-16 01:54



>>> mylist = [1,2,3]
>>> [x+1 for x in mylist]
[2, 3, 4]
>>>

lista-comprensiones python.


14
2018-02-16 01:56



Las otras respuestas en la lista de comprensión son probablemente la mejor opción para la adición simple, pero si tiene una función más compleja que necesita aplicar a todos los elementos, entonces mapa puede ser un buen ajuste.

En tu ejemplo, sería:

>>> map(lambda x:x+1, [1,2,3])
[2,3,4]

12
2018-02-16 02:03



>>> [x.__add__(1) for x in [1, 3, 5]]
3: [2, 4, 6]

Mi intención aquí es exponer si el elemento en la lista es un número entero, admite varias funciones incorporadas.


5
2018-02-16 04:03



Python 2+:

>>> mylist = [1,2,3]
>>> map(lambda x: x + 1, mylist)
[2, 3, 4]

Python 3+:

>>> mylist = [1,2,3]
>>> list(map(lambda x: x + 1, mylist))
[2, 3, 4]

4
2018-02-16 02:07



si quieres usar numpy hay otro método de la siguiente manera

import numpy as np
list1 = [1,2,3]
list1 = list(np.asarray(list1) + 1)

4
2017-12-14 05:46



En primer lugar, no use la palabra 'lista' para su variable. Sombrea la palabra clave list.

La mejor manera es hacerlo en su lugar utilizando el empalme, tenga en cuenta el [:] denota un empalme:

>>> _list=[1,2,3]
>>> _list[:]=[i+1 for i in _list]
>>> _list
[2, 3, 4]

3
2018-02-16 03:00