Pythonの配列の操作

こんばんは。きわさです。

今回はpythonの配列についてです。

まず、以下のような0~9の配列があるとします。

test = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

たとえば、この配列の各要素を2倍にした配列([0, 2, 4, 6, 8, 10, 12, 14, 16, 18])がほしい場合どう書きますか?

test1 = []
for i in test:
    test1.append(i * 2)

と、書く人もいるかもしれません。

この場合は、以下のように書けます。

test1 = [i * 2 for i in test]

結果はどちらも、[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]となります。

次は、
配列の要素のうち、偶数は2倍、奇数は3倍にした配列([0, 3, 4, 9, 8, 15, 12, 21, 16, 27])を作りたい場合です。
そのまま書くと以下のようになるかもしれません。

test2 = []
for i in test:
    if (i % 2) == 0: 
        test2.append(i * 2)
    else:
        test2.append(i * 3)

これも以下のように1行で書くことができます。

test2 = [i * 2 if i % 2 == 0 else i * 3 for i in test]

結果はどちらも[0, 3, 4, 9, 8, 15, 12, 21, 16, 27] となります。

次は、
奇数を除いた偶数のみの配列([0, 2, 4, 6, 8])にしたい場合です。
以下のように書きたいところですが、

test3 = []
for i in test:
    if (i % 2) == 0: 
        test3.append(i)

これは以下のように書けます。

test3 = [i for i in test if i % 2 == 0]

結果はどちらも[0, 2, 4, 6, 8]になります。

スポンサーリンク