ここで説明したリストは,要素を1次元に並べたものであった.Pythonでは1次元のリストだけでなく,2次元や3次元以上のリストを扱うことも可能です.まずは1次元リストから確認しよう.
1次元リストの作成は []
で要素を囲めば良いでしょう.
# 1次元リスト
a1 = [1,2,3,4,5]
a1
[1, 2, 3, 4, 5]
1次元リストのインデックスは0からスタートします.つまりa1[1]
では2
が表示されることに注意しよう.
a1[1]
2
インデックス5は存在しないので,エラーになります.
a1[5]
------------------------------------------------------- IndexError Traceback (most recent call last) <ipython-input-3-c2fe1e305f1d> in <module> ----> 1 a1[5] IndexError: list index out of range
インデックスの範囲を[2:5]
のように指定することもできます.
a1[2:5]
[3, 4, 5]
リストのサイズはlen()
で得ることができます.
len(a1)
5
すべての要素を0で初期化したリストを作成することもできます.
# ゼロで初期化する
b1 = [0] * 10
b1
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
0で初期化したあと,特定の要素だけ値を書き換えてみます.
b1[3] = 99
b1
[0, 0, 0, 99, 0, 0, 0, 0, 0, 0]
リストは非常に柔軟性が高く,数値と文字列を混在させたり,リストの要素の中にさらにリストを含めることも可能です.
数値と文字列を混在させる
a1 = [1, 'two', 3, '4', 'five']
a1
[1, 'two', 3, '4', 'five']
リストの中にリストを含める
a1 = [1, 2, 3, [1, 1, 1, 1], 5]
a1
[1, 2, 3, [1, 1, 1, 1], 5]
しかしながら,柔軟性(自由度)の高さは処理速度の観点からはマイナスになります.多数のデータを高速に処理したい要な場合には NumPy 配列 を使うことをおすすめします.状況にもよりますがNumPyを使うことで同じ処理を50倍以上の速度で実行できることもあります.