リスト内包表記
リスト内包表記を用いることで、イテラブルオブジェクトから取り出した値を用い、式に基づいてリストを生成することができる。次が基本形である。
code:python
【式】 for 【変数】 in 【イテラブルオブジェクト】
変数が1つの例
【変数】に与えたい値が1列に並んだイテラブルオブジェクトをを渡す。
code:python
result1 = [x for x in 0, 1, 2, 3, 4]
print(result1)
result2 = x for x in range(5)
print(result2)
# 結果:
# 0, 1, 2, 3, 4
# 0, 1, 2, 3, 4
変数が2つの例
このように【変数】に与えたい値をもつリストやタプルをイテラブルオブジェクトに格納して渡す。
code:python
input1 = 1, 4 # 1がx, 4がyに対応
input2 = 2, 5 # 2がx, 5がyに対応
input3 = 3, 6 # 3がx, 6がyに対応
inputs = input1, input2, input3
result = x + y for x, y in inputs
print(result)
# 結果:5, 7, 9
zip関数を用いることで、2系列のデータ(input1, input2)をまとめることができる。
code:python
input1 = 1, 2, 3
input2 = 4, 5, 6
inputs = zip(input1, input2)
result = x + y for x, y in inputs
print(result)
# 結果:5, 7, 9
2次元の場合
少々ややこしいが、入れ子になったリストを作ることもできる。多次元のndarray型オブジェクトを生成するのに有効である。
code:python
result = [x + 3*y for x in range(3) for y in range(2)]
print(result)
# 結果:0, 1, 2], [3, 4, 5