まくまくPythonノート
リストの生成: サイズを指定して作成する ([]* N)
2019-11-25

指定した要素を繰り返したリスト(タプル)生成する

Python で初期値を持つリストやタプルは次のように作成することができます。

l = [0, 1, 2]  # リストの作成
t = (0, 1, 2)  # タプルの作成

この初期値の後ろに * 演算子で数値指定を行うと、その数だけ値を繰り返したリストやタプルを生成することができます。

繰り返し要素からなるリストの生成

l1 = [0] * 5        #=> [0, 0, 0, 0, 0]
l2 = [0, 1, 2] * 2  #=> [0, 1, 2, 0, 1, 2]
l3 = [set()] * 3    #=> [set(), set(), set()]

タプルもリストと同様ですが、要素数が 1 のタプルを生成する場合は、カンマを付けるのを忘れないようにしてください(優先順位を指定する括弧として処理されないようにするためです)。

繰り返し要素からなるタプルの生成

t1 = (0,) * 5       #=> (0, 0, 0, 0, 0)
t2 = (0, 1, 2) * 2  #=> (0, 1, 2, 0, 1, 2)
t3 = (set(),) * 3   #=> (set(), set(), set())

(コラム)空リストを繰り返すと?

ちなみに、次のように空リストや空タプルを繰り返しても、要素は空っぽのまま(サイズ=0)です。

l = [] * 10    #=> []
t = () * 10    #=> ()

print(len(l))  #=> 0
print(len(t))  #=> 0

空の要素を繰り返しても空っぽのままということですね。

2019-11-25