在Python中将一个数字加到列表(或数组)中的每个元素上

62 投票
5 回答
186157 浏览
提问于 2025-04-16 16:14

我又来问一些基础问题了,请大家多多包涵。

在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]

撰写回答