用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