web-dev-qa-db-ja.com

リストの各要素に整数を追加する方法は?

list=[1,2,3]があり、出力1を取得するために[2,3,4]を各要素に追加したい場合、どうすればよいですか?

私はforループを使用すると思いますが、正確な方法はわかりません。

98
user1212818
new_list = [x+1 for x in my_list]
114
Ned Batchelder
>>> mylist = [1,2,3]
>>> [x+1 for x in mylist]
[2, 3, 4]
>>>

list-comprehensions python

23
RanRag

リスト内包に関する他の答えはおそらく単純な追加の最善策ですが、すべての要素に適用する必要があるより複雑な関数がある場合は、 map が適しています。

あなたの例では:

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

numpyを使用したい場合は、次のような別の方法があります

import numpy as np
list1 = [1,2,3]
list1 = list(np.asarray(list1) + 1)
12
sushmit
>>> [x.__add__(1) for x in [1, 3, 5]]
3: [2, 4, 6]

ここでの私の意図は、リスト内のアイテムがさまざまな組み込み関数をサポートする整数である場合に公開することです。

9
Kracekumar

まず、変数にWordの「リスト」を使用しないでください。キーワードlistを隠します。

最適な方法は、スプライシングを使用して所定の場所で実行することです。[:]はスプライスを示すことに注意してください。

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

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]
5
satomacoto

それほど効率的ではないが、それを行うユニークな方法に出くわした。共有するには、別のリスト用に追加のスペースが必要です。

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]
0
Preetham
list = [1,2,3,4,5]

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

print(list)
0
Munchjax