在这里,我再次提出基本问题,但请耐心等待.
在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)
您还可以使用地图:
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)
| 归档时间: |
|
| 查看次数: |
81648 次 |
| 最近记录: |