2011-02-07 210 views
38

我仍在閱讀Python 3.1.3教程,並遇到以下問題:從Python中列表中的每個數字減去一個值?

如何從一組數字中刪除值?

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

如何從列表中的每個整數值減去13?

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

回答

70

隨着列表的理解。

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

謝謝你,好工作。 :) 你如何快速把它放入函數? – Josh 2011-02-07 05:59:29

+1

通過在上面的行上加上`def minus13(a):`並縮進一個級別。 – 2011-02-07 06:00:41

+4

爲什麼'l [:]`在lhs上而不是僅僅指定回`a`?不`a [:]`創建列表的副本? – istruble 2011-02-07 06:06:23

2

這將工作:

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

如果你跟數字打交道很多,你可能想看看NumPy。它可以讓你直接對數值數組執行各種操作。例如:

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

可以使用map()功能:

a = list(map(lambda x: x - 13, a)) 
相關問題