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