用Python从列表中的每个数字中减去一个值?

用Python从列表中的每个数字中减去一个值?,python,python-3.x,Python,Python 3.x,我有一张单子 a = [49, 51, 53, 56] 如何从列表中的每个整数值中减去13 这将有助于: for i in range(len(a)): a[i] -= 13 如果你经常使用数字,你可能想看看。它允许您直接对数值数组执行各种操作。例如: >>> import numpy >>> array = numpy.array([49, 51, 53, 56]) >>> array - 13 array([36, 38, 40

我有一张单子

 a = [49, 51, 53, 56]
如何从列表中的每个整数值中减去13

这将有助于:

for i in range(len(a)):
  a[i] -= 13

如果你经常使用数字,你可能想看看。它允许您直接对数值数组执行各种操作。例如:

>>> import numpy
>>> array = numpy.array([49, 51, 53, 56])
>>> array - 13
array([36, 38, 40, 43])
您可以使用以下功能:

a = list(map(lambda x: x - 13, a))

由于评论中的问题,澄清已发布的解决方案

import numpy

array = numpy.array([49, 51, 53, 56])
array = array - 13
将输出:

数组([36,38,40,43])


通过将
def minus 13(a):
放在上面的行上并缩进一个级别。为什么在lhs上设置
a[:]
,而不是只分配回
a
?不是
a[:]
创建列表的副本吗?istruble:应该做的是,函数应该返回列表理解中的值,如果合适,调用方应该决定替换现有序列。@istruble:直接分配给a也可以。因此
a=[x-13代表a中的x]
也同样有效,而且不那么容易混淆。列表理解解决方案更具python风格。你可能会喜欢它们。谁删除了我的评论我看不出计算a的长度有什么意义。进行简单的计算。如果要以这种方式表示算法,则需要计数,以便索引变量(
i
)迭代所有可能的索引值。这个索引变量需要对列表中的每个元素进行变异。在python中同时使用range和len几乎总是一种代码味道,总是有一种更好的方法做事情,如上面给出的众多示例所示。@Frost.baka在python 3中,map返回map object。在Python2中,它返回list。我做了一个快速测试,它返回一个新数组,而原始数组保持不变。
import numpy

array = numpy.array([49, 51, 53, 56])
array = array - 13