Python リスト完全ガイド:作成、操作、メソッドのすべて
Python で最も基本的なデータ構造は シーケンス(sequence) です。シーケンスの各要素には番号(位置またはインデックス)が割り当てられます。最初のインデックスは 0、2 番目は 1、というように続きます。
Python には 6 つの組み込みシーケンス型がありますが、最も一般的なのはリストとタプルです。これらはこのチュートリアルで扱います。
すべてのシーケンス型で共通して行える操作があります。これらにはインデックス、スライス、追加、乗算、メンバーシップのチェックが含まれます。さらに、Python にはシーケンスの長さを求めたり、最大・最小要素を見つけたりする組み込み関数があります。
Python リスト
リストは Python で利用可能な最も汎用性の高いデータ型で、カンマ区切りの値(アイテム)を角括弧で囲んで記述します。リストの重要な特徴は、リスト内のアイテムが同じ型である必要がないことです。
リストの作成は、異なるカンマ区切りの値を角括弧で囲むだけで簡単です。例:
list1 = ['physics', 'chemistry', 1997, 2000] list2 = [1, 2, 3, 4, 5] list3 = ["a", "b", "c", "d"]
文字列のインデックスと同様に、リストのインデックスは 0 から始まり、リストはスライス、連結などが可能です。
リスト内の値へのアクセス
リスト内の値にアクセスするには、スライスのために角括弧と、そのインデックスで利用可能な値を取得するためのインデックスを使用します。例:
ライブ デモ#!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000] list2 = [1, 2, 3, 4, 5, 6, 7] print "list1[0]: ", list1[0] print "list2[1:5]: ", list2[1:5]
上記のコードを実行すると、次の結果が得られます。
list1[0]: physics list2[1:5]: [2, 3, 4, 5]
リストの更新
代入演算子の左辺にスライスを指定することで、リストの単一または複数の要素を更新できます。また、append() メソッドを使用してリストに要素を追加できます。例:
ライブ デモ#!/usr/bin/python list = ['physics', 'chemistry', 1997, 2000] print "Value available at index 2 : " print list[2] list[2] = 2001 print "New value available at index 2 : " print list[2]
注 — append() メソッドについては後のセクションで説明します。
上記のコードを実行すると、次の結果が得られます。
Value available at index 2 : 1997 New value available at index 2 : 2001
リスト要素の削除
リスト要素を削除するには、正確にどの要素を削除するかわかっている場合は del 文を、わからない場合は remove() メソッドを使用します。例:
ライブ デモ#!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000] print list1 del list1[2] print "After deleting value at index 2 : " print list1
上記のコードを実行すると、次の結果が得られます。
['physics', 'chemistry', 1997, 2000] After deleting value at index 2 : ['physics', 'chemistry', 2000]
注 — remove() メソッドについては後のセクションで説明します。
基本的なリスト操作
リストは文字列と同様に + と * 演算子に反応します。これらは連結と反復を意味しますが、結果は文字列ではなく新しいリストになります。
実際、リストは前章で文字列に使用したすべての一般的なシーケンス操作に対応しています。
| Python 式 | 結果 | 説明 |
|---|---|---|
| len([1, 2, 3]) | 3 | 長さ |
| [1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | 連結 |
| ['Hi!'] * 4 | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | 反復 |
| 3 in [1, 2, 3] | True | メンバーシップ |
| for x in [1, 2, 3]: print x, | 1 2 3 | イテレーション |
インデックス、スライス、マトリックス
リストはシーケンスであるため、インデックスとスライスは文字列と同じように機能します。
以下の入力を想定します:
L = ['spam', 'Spam', 'SPAM!']
| Python 式 | 結果 | 説明 |
|---|---|---|
| L[2] | SPAM! | オフセットはゼロから始まる |
| L[-2] | Spam | 負のインデックス:右から数える |
| L[1:] | ['Spam', 'SPAM!'] | スライスでセクションを取得 |
組み込みリスト関数とメソッド
Python には以下のリスト関数が含まれています。
| 番号 | 関数と説明 |
|---|---|
| 1 | cmp(list1, list2) 両リストの要素を比較します。 |
| 2 | len(list) リストの総長を返します。 |
| 3 | max(list) リストから最大値を持つアイテムを返します。 |
| 4 | min(list) リストから最小値を持つアイテムを返します。 |
| 5 | list(seq) タプルをリストに変換します。 |
Python には以下のリストメソッドが含まれています。
| 番号 | メソッドと説明 |
|---|---|
| 1 | list.append(obj) オブジェクト obj をリストに追加 |
| 2 | list.count(obj) obj がリストに出現する回数を返す |
| 3 | list.extend(seq) seq の内容をリストに追加 |
| 4 | list.index(obj) obj がリストに出現する最小のインデックスを返す |
| 5 | list.insert(index, obj) オフセット index の位置にオブジェクト obj を挿入 |
| 6 | list.pop(obj=list[-1]) 最後のオブジェクトまたは obj をリストから削除して返す |
| 7 | list.remove(obj) オブジェクト obj をリストから削除 |
| 8 | list.reverse() リストのオブジェクトをその場で反転 |
| 9 | list.sort([func]) リストのオブジェクトをソート。比較関数 func が与えられた場合はそれを使用 |
Python
- Python データ型マスター: 実践ガイド
- Python 演算子完全マスター: 包括的ガイド
- Python pass文完全マスター: 実践ガイド
- Python 関数引数完全マスター: 位置引数・キーワード引数・デフォルト引数
- Python range()関数をマスター:基礎から応用まで
- Pythonリスト完全ガイド:追加、ソート、長さ、リスト内包表記(実践編)
- Pythonで平均を計算する:実践ガイド
- Python list.count() 完全ガイド:実践例付きで徹底解説
- Pythonリストから重複要素を削除する方法:順序保持と効率のバランス
- Pythonリストから要素を削除する方法:remove()、pop()、clear()、del
- Python list.index():要素の位置を検索する実践ガイド