【发布时间】:2011-06-22 13:12:55
【问题描述】:
我有一个清单
a = [49, 51, 53, 56]
如何从列表中的每个整数值中减去 13?
【问题讨论】:
标签: python python-3.x
我有一个清单
a = [49, 51, 53, 56]
如何从列表中的每个整数值中减去 13?
【问题讨论】:
标签: python python-3.x
a = [x - 13 for x in a]
【讨论】:
def minus13(a): 放在上面一行并缩进一层。
a[:] 在 lhs 上而不是仅仅分配回 a? a[:] 不会创建列表的副本吗?
a = [x - 13 for x in a] 也能正常工作,而且不会那么混乱。
如果您经常使用数字,您可能想看看NumPy。它使您可以直接对数值数组执行各种操作。例如:
>>> import numpy
>>> array = numpy.array([49, 51, 53, 56])
>>> array - 13
array([36, 38, 40, 43])
【讨论】:
你可以使用map()函数:
a = list(map(lambda x: x - 13, a))
【讨论】:
澄清由于 cmets 中的问题而已发布的解决方案
import numpy
array = numpy.array([49, 51, 53, 56])
array = array - 13
将输出:
数组([36, 38, 40, 43])
【讨论】:
这将起作用:
for i in range(len(a)):
a[i] -= 13
【讨论】:
i) 遍历所有可能的索引值是必要的。需要这个索引变量来改变列表中的每个元素。