Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中,对列表(或数组)中的每个元素求和一个数字_Python_List_Sum - Fatal编程技术网

在Python中,对列表(或数组)中的每个元素求和一个数字

在Python中,对列表(或数组)中的每个元素求和一个数字,python,list,sum,Python,List,Sum,我再问一次我的基本问题,但请耐心听我说 在Matlab中,向列表中的元素添加数字相当简单: a = [1,1,1,1,1] b = a + 1 b然后是[2,2,2,2,2] 在python中,这似乎不起作用,至少在列表中是这样 是否有一种简单快速的方法将单个数字添加到整个列表中 感谢使用列表理解: >>> L = [1]*5 >>> [x+1 for x in L] [2, 2, 2, 2, 2] >>> 这大致可以转化为使用for循

我再问一次我的基本问题,但请耐心听我说

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

a = [1,1,1,1,1]
b = a + 1
b
然后是
[2,2,2,2,2]

在python中,这似乎不起作用,至少在列表中是这样

是否有一种简单快速的方法将单个数字添加到整个列表中


感谢使用列表理解:

>>> 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(lambda x:x+1, L)
[2, 2, 2, 2, 2]
>>> 

如果您不希望列表理解:

a = [1,1,1,1,1]
b = []
for i in a:
    b.append(i+1)

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

import numpy
a = [1, 1, 1 ,1, 1]
ar = numpy.array(a)
print ar + 2
给予

您还可以使用地图:

a = [1, 1, 1, 1, 1]
b = 1
list(map(lambda x: x + b, a))
它给出:

[2, 2, 2, 2, 2]
试试这个。(我修改了这个例子,目的是使它不平凡)

operator.add
几乎快了两倍多

%timeit map(operator.add, a, a1)
而不是加上numpy

%timeit an+1
%timeit map(operator.add, a, a1)
%timeit an+1