Si tengo list=[1,2,3]
y deseo agregar 1
a cada elemento para obtener la salida [2,3,4]
, ¿cómo podría hacerlo?¿Cómo agregar un número entero a cada elemento en una lista?
Supongo que usaría un ciclo for pero no estoy seguro de cómo.
Si tengo list=[1,2,3]
y deseo agregar 1
a cada elemento para obtener la salida [2,3,4]
, ¿cómo podría hacerlo?¿Cómo agregar un número entero a cada elemento en una lista?
Supongo que usaría un ciclo for pero no estoy seguro de cómo.
new_list = [x+1 for x in my_list]
>>> mylist = [1,2,3]
>>> [x+1 for x in mylist]
[2, 3, 4]
>>>
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 map puede ser una buena opción.
En su ejemplo sería:
>>> map(lambda x:x+1, [1,2,3])
[2,3,4]
'map (1 .__ add__, ...)' funciona también. Tenga en cuenta que necesita un espacio entre '1' y' .' para evitar que el analizador piense que es un flotante –
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]
En primer lugar no usan la palabra 'lista' para tu variable Sombrea la palabra clave list
.
La mejor manera es hacerlo en su lugar con el empalme, tenga en cuenta el [:]
denota un empalme:
>>> _list=[1,2,3]
>>> _list[:]=[i+1 for i in _list]
>>> _list
[2, 3, 4]
Esto es bueno para cambiar la lista existente, pero todavía produce una nueva. ¿De alguna manera no es seguro usar un generador para evitar la creación innecesaria de listas? Es decir, '_list [:] = (i + 1 para i en _list)'. – Alan
@Alan buen punto - debería usar el generador –
>>> [x.__add__(1) for x in [1, 3, 5]]
3: [2, 4, 6]
Mi intención aquí es exponer si el elemento de la lista es un número entero que soporta varias funciones incorporadas.
Buen recordatorio para nosotros, perdidos en la lista de comprensión mágica. – npit
si desea utilizar numpy hay otro método de la siguiente manera
import numpy as np
list1 = [1,2,3]
list1 = list(np.asarray(list1) + 1)
Por qué no 'para el correo en LST: e + = 1' trabajar? –
Esta charla lo explica: Hechos y mitos sobre los nombres y valores de Python: http://nedbatchelder.com/text/names1.html –
√ Información impresionante. Ojo abierto. –