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

jay*_*dez 73 python python-3.x

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

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

 a = [49, 51, 53, 56]
Run Code Online (Sandbox Code Playgroud)

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

 a = [49, 51, 53, 56]
Run Code Online (Sandbox Code Playgroud)

Ign*_*ams 126

具有列表理解力.

a = [x - 13 for x in a]
Run Code Online (Sandbox Code Playgroud)

  • 为什么在lhs上有一个[:]`而不是仅仅分配给'a`?不是'a [:]`创建列表的副本? (8认同)
  • 应该*应该做的是,列表推导的值应该由函数返回,并且调用者应该决定在适当的时候替换现有的序列. (4认同)
  • 通过在上面的行上放置`def减13(a):`并缩进一个级别. (2认同)
  • istruble:http://stackoverflow.com/questions/4081561/what-is-the-difference-between-list-and-list-in-python (2认同)

sha*_*ang 57

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

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


spu*_*kus 9

你可以使用map()函数:

a = list(map(lambda x: x - 13, a))
Run Code Online (Sandbox Code Playgroud)

  • @ Frost.baka在Python 3中,map返回map对象.在Python 2中,它返回列表. (7认同)

小智 5

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

import numpy

array = numpy.array([49, 51, 53, 56])
array = array - 13
Run Code Online (Sandbox Code Playgroud)

将输出:

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