如何为列表中的每个元素添加整数?

问题描述 投票:93回答:9

如果我有list=[1,2,3]并且我想将1添加到每个元素以获得输出[2,3,4],我该怎么做?

我假设我会使用for循环但不确定如何。

python loops addition
9个回答
114
投票
new_list = [x+1 for x in my_list]

23
投票
>>> mylist = [1,2,3]
>>> [x+1 for x in mylist]
[2, 3, 4]
>>>

list-comprehensions python


18
投票

列表理解的其他答案可能是简单添加的最佳选择,但如果你有一个更复杂的功能,你需要应用于所有元素,那么map可能是一个很好的选择。

在您的示例中,它将是:

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

12
投票

如果你想使用numpy,还有另一种方法如下

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

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

我的目的是揭示列表中的项是否为整数,它支持各种内置函数。


6
投票

首先,不要在变量中使用“list”一词。它会隐藏关键字list

最好的方法是使用拼接来做到这一点,注意[:]表示拼接:

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

5
投票

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]

0
投票
list = [1,2,3,4,5]

for index in range(5):
      list[index] = list[index] +1

print(list)

0
投票

遇到了一种不那么高效但独特的方式。所以分享它。是的,它需要额外的空间用于另一个列表。

test_list1 = [4, 5, 6, 2, 10]
test_list2 = [1] * len(test_list1)

res_list = list(map(add, test_list1, test_list2))

print(test_list1)
print(test_list2)
print(res_list)

#### Output ####
[4, 5, 6, 2, 10]
[1, 1, 1, 1, 1]
[5, 6, 7, 3, 11]
© www.soinside.com 2019 - 2024. All rights reserved.