Python: リスト内の全ての要素を2倍する

シンプルにfor文を使用する方法

mylist = [1,2,3,4,5,6,7,8,9]
newlist = []
for n in mylist:
    newlist.append(n*2)
print(newlist)
[2, 4, 6, 8, 10, 12, 14, 16, 18]

わかりやすいですが、行数が多くなります。

python内包表記を使用した方法

mylist = [1,2,3,4,5,6,7,8,9]
newlist = [n*2 for n in mylist]
print(newest)
[2, 4, 6, 8, 10, 12, 14, 16, 18]

個人的には一番好きです。最もPythonらしい書き方かと思います。

map関数を使用した方法1

def double(n):
     return n*2

mylist = [1,2,3,4,5,6,7,8,9]
newlist = map(double, mylist)
print(newlist)
[2, 4, 6, 8, 10, 12, 14, 16, 18]

Pythonではあまりmap関数は多用しないかと思いますが、他の言語から入ってきた方にはわかりやすいかもしれません。

map関数を使用した方法2(ラムダ式で無名関数を定義する)

mylist = [1,2,3,4,5,6,7,8,9]
newlist = map(lambda x: x*2, mylist)
print(newlist)
[2, 4, 6, 8, 10, 12, 14, 16, 18]

適用する関数の内容がシンプルな場合には、ラムダ式で十分かと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です