リストとは何ですか?
リストは、順序付けられた複数の要素からなるデータ構造です。Python では、大括弧([])を使用してリストを定義し、コンマ(,)で各要素を区切ります。
リスト要素へのアクセス
リストは順序が保証された集合であるため、特定の数値に基づき要素を取得することができます。リスト名に続けて、対象となる項目の番号(インデックス)を角括弧内に記述する形式で使用します。
>>> product_list = ['iPhone', 'MacBook', 'iPad']
>>> print(product_list)
['iPhone', 'MacBook', 'iPad']
>>> print(product_list[0])
iPhone
末尾の要素に直接アクセスする際、特別な構文を利用可能です。インデックスとして -1 を指定すれば最後の項目が返されます。-2 は逆算した 2 番目、-3 は 3 番目など、同様の方式で負のインデックスを使用できます。
要素の変更・追加・削除
ほとんどの場合、リストはプログラムの実行中に動的に変化します。つまり、作成後に要素の追加分除が行われます。
要素値の更新は、特定の位置を指定して新しい内容を書き込むことで行います。
>>> product_list[1] = 'AirPods'
末尾へ新しいアイテムを追加するには append() メソッドを用います。
>>> product_list.append('Mac Pro')
>>> print(product_list)
['iPhone', 'AirPods', 'iPad', 'Mac Pro']
リスト内の任意の場所に挿入する場合は insert() を使用します。このとき、挿入先のインデックスと新規の値を引数として渡します。
>>> product_list.insert(0, 'Watch')
要素の削除方法
del ステートメントを使って要素を消去すると、その値はリストから完全に除去され、以後アクセスできなくなります。
>>> del product_list[2]
pop() メソッドも削除に利用できます。末尾の項目を取り出し、変数に格納することで元のリストから除外しつつ値も保持できます。例えば、ゲームにおけるキャラクター情報の整理や、ウェブアプリケーションでのセッション管理などで頻繁に用いられます。
>>> removed_item = product_list.pop()
>>> print(removed_item)
末尾以外を削除する場合も pop() が活用可能です。パラメータとして削除したいインデックスを指定します。
>>> removed_item = product_list.pop(0)
インデックスではなく値に基づいて削除を行う場合は remove() を使います。指定された値を持つ最初の項目のみが削除されます。複数の重複項目を全て消す必要がある場合は、ループ処理などの対応が必要です。
>>> product_list.remove('iPad')
リストの整列と情報取得
sort() メソッドは現在のリストを順次変更せずに並べ替えます。
>>> product_list.sort()
>>> print(product_list)
一時的に並び替えを行いたい場合は関数 sorted() が適しています。これはオリジナルのリストを変えないで結果だけを得ます。逆順にも設定可能です。
>>> print(sorted(product_list, reverse=True))
表示順を反転させたいときは reverse() メソッドを利用します。文字コード順ではありません。現在の順序を物理的に入れ替えるため、再度呼び出すと元に戻せます。
>>> product_list.reverse()
>>> print(product_list)
リストに含まれる項目数を調べるには len() 関数が便利です。
>>> len(product_list)