2012-02-16 20 views

回答

77
new_list = [x+1 for x in my_list] 
+3

爲什麼不'爲電子商務在LST:E + = 1'工作? – 2016-12-01 23:42:41

+6

這個話題解釋了它:有關Python名稱和值的事實和神話:http://nedbatchelder.com/text/names1.html – 2016-12-02 13:36:44

+0

√非常棒的信息。開眼界。 – 2016-12-03 22:21:30

12

列表理解上的其他答案可能是簡單加法的最佳選擇,但如果您有更復雜的功能需要應用於所有元素,那麼map可能是個不錯的選擇。

在您的例子那就是:

>>> map(lambda x:x+1, [1,2,3]) 
[2,3,4] 
+3

'map(1 .__ add__,...)'也可以。請注意,在'1'和'.'之間需要一個空格以防止解析器認爲它是浮點型 – 2012-02-16 03:15:45

4

的Python 2+:

>>> mylist = [1,2,3] 
>>> map(lambda x: x + 1, mylist) 
[2, 3, 4] 

的Python 3+:

>>> mylist = [1,2,3] 
>>> list(map(lambda x: x + 1, mylist)) 
[2, 3, 4] 
2

首先不使用單詞 '名單'爲你的變量。它影響關鍵字list

最好的辦法是用拼接做的很到位,注意[:]表示拼接:

>>> _list=[1,2,3] 
>>> _list[:]=[i+1 for i in _list] 
>>> _list 
[2, 3, 4] 
+2

這對於更改現有列表非常有用,但它仍然會生成一個新列表。使用生成器避免不必要的列表創建是否不安全?即,'_list [:] =(i列表中的i + 1)'。 – Alan 2017-05-20 15:24:09

+0

@Alan好點 - 應該使用生成器 – 2017-05-21 12:34:06

6
>>> [x.__add__(1) for x in [1, 3, 5]] 
3: [2, 4, 6] 

我在這裏的目的是要揭露,如果在列表中的產品,它支持整數各種內置功能。

+1

對於我們來說很好的提醒在列表修真魔法中失敗了。 – npit 2017-10-02 23:45:45

3

,如果你想使用numpy的還有另一種方法如下

import numpy as np 
list1 = [1,2,3] 
list1 = list(np.asarray(list1) + 1) 
相關問題