※必要に応じて「【Python】全要素が0の任意長のリストを作成する方法」のページも参照されたい。
リストを定義する
大抵の場合は次のようにリストを定義する。
number = [8, 6, 1, 42, 13] print(number) # [8, 6, 1, 42, 13] print(number[0]) # 8 print(number[1:4]) # 2 ~ 4 番目の要素を表示 # [6, 1, 42] # 返り値はリストになる
for文などの制御文を利用することで、リスト内に格納した複数の値を順番に処理することができる。なお、Pythonではリストの要素を「0番目」から数え始めるので注意する。
2次元配列(リストのリスト)を定義する
numbers = [[8, 6, 1, 42, 13], [4, -2, 81, 19, 43], [1, 34, -71, 45, -27]] print(numbers) # [[8, 6, 1, 42, 13], [4, -2, 81, 19, 43], [1, 34, -71, 45, -27]] print(numbers[0]) # [8, 6, 1, 42, 13] print(numbers[1][2:]) # 2行目の 3 番目以降の要素を表示 # [81, 19, 43] print(numbers[0]+numbers[1]) # 1行目と2行目を結合したリスト # [8, 6, 1, 42, 13, 4, -2, 81, 19, 43]
これは以下のような行列になっている。$$\left[\begin{array}{ccccc}
8 & 6 & 1 & 42 & 13 \\
4 & -2 & 81 & 19 & 43 \\
1 & 34 & -71 & 45 & -27
\end{array}\right]$$
要素の個数を2倍にする(リストの初期化)
リストに対して「2 * 」とすると要素の個数が2倍になる。
number = 2 * [8, 6, 1, 42, 13] print(number) # [8, 6, 1, 42, 13, 8, 6, 1, 42, 13] print(number[0]) # 8 print(number[4:7]) # 5 ~ 7 番目の要素を表示 # [13, 8, 6]
この方法だと2倍にするだけでなく、何倍にでもできる。ただし「2.0 * 」のようにint型以外を乗算するとエラーとなる。これを応用すると任意の値・要素数でリストを初期化することができる。
range関数を利用する
range関数により作成したイテラブルオブジェクトをlist化すれば整数列のリストを生成することも容易である。この方法は是非覚えておきたい。
list1 = list(range(101)) # 0 から 100 までの整数列のリストを生成 list2 = list(range(1,101)) # 1 から 100 までの整数列のリストを生成