将一个数字与Python中列表(或数组)中的每个元素相加

Leo*_*fox 36 python sum list

在这里,我再次提出基本问题,但请耐心等待.

在Matlab中,向列表中的元素添加数字非常简单:

a = [1,1,1,1,1]
b = a + 1
Run Code Online (Sandbox Code Playgroud)

b 然后是 [2,2,2,2,2]

在python中,这似乎不起作用,至少在列表上.

是否有一种简单快捷的方法可以将整个列表中的单个数字相加.

谢谢

joa*_*uin 55

如果你想使用数字列表操作,最好使用NumPy数组:

import numpy
a = [1, 1, 1 ,1, 1]
ar = numpy.array(a)
print ar + 2
Run Code Online (Sandbox Code Playgroud)

[3, 3, 3, 3, 3]
Run Code Online (Sandbox Code Playgroud)


DTi*_*ing 25

使用列表理解:

>>> L = [1]*5
>>> [x+1 for x in L]
[2, 2, 2, 2, 2]
>>> 
Run Code Online (Sandbox Code Playgroud)

大致转换为使用for循环:

>>> newL = []
>>> for x in L:
...     newL+=[x+1]
... 
>>> newL
[2, 2, 2, 2, 2]
Run Code Online (Sandbox Code Playgroud)

或使用地图:

>>> map(lambda x:x+1, L)
[2, 2, 2, 2, 2]
>>> 
Run Code Online (Sandbox Code Playgroud)


Enr*_*ero 5

您还可以使用地图:

a = [1, 1, 1, 1, 1]
b = 1
list(map(lambda x: x + b, a))
Run Code Online (Sandbox Code Playgroud)

它给:

[2, 2, 2, 2, 2]
Run Code Online (Sandbox Code Playgroud)