在Python中将一个数字加到列表(或数组)中的每个元素上
我又来问一些基础问题了,请大家多多包涵。
在Matlab中,给列表里的每个元素加一个数字是非常简单的:
a = [1,1,1,1,1]
b = a + 1
这样,b
就变成了 [2,2,2,2,2]
但是在Python中,这样做似乎不太管用,至少在列表上是这样。
有没有什么简单快捷的方法,可以把一个数字加到整个列表上呢?
谢谢!
5 个回答
5
你还可以使用 map 这个方法:
a = [1, 1, 1, 1, 1]
b = 1
list(map(lambda x: x + b, a))
它会返回:
[2, 2, 2, 2, 2]
32
使用列表推导式:
>>> L = [1]*5
>>> [x+1 for x in L]
[2, 2, 2, 2, 2]
>>>
这大致可以理解为使用一个for循环:
>>> newL = []
>>> for x in L:
... newL+=[x+1]
...
>>> newL
[2, 2, 2, 2, 2]
或者使用map函数:
>>> map(lambda x:x+1, L)
[2, 2, 2, 2, 2]
>>>
88
如果你想处理一组数字,使用NumPy数组会更好:
import numpy
a = [1, 1, 1 ,1, 1]
ar = numpy.array(a)
print ar + 2
这样可以得到
[3, 3, 3, 3, 3]