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

时间:2011-02-07 05:50:06

标签: python python-3.x

我还在阅读Python 3.1.3教程并遇到以下问题:

  

如何从一组数字中删除值?

# A list with a group of values
a = [49, 51, 53, 56]

如何从列表中的每个整数值中减去13?

# Attempting to minus 13 from this list - FAIL!
(a[:] = a[:] - 13)

5 个答案:

答案 0 :(得分:107)

列表理解。

a[:] = [x - 13 for x in a]

答案 1 :(得分:54)

如果您经常使用数字,可能需要查看NumPy。它允许您直接在数值数组上执行各种操作。例如:

>>> import numpy
>>> array = numpy.array([49, 51, 53, 56])
>>> array - 13
array([36, 38, 40, 43])

答案 2 :(得分:9)

您可以使用map()功能:

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

答案 3 :(得分:3)

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

import numpy

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

将输出:

  

array([36,38,40,43])

答案 4 :(得分:2)

这将有效:

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