Pythonリスト完全ガイド:追加、ソート、長さ、リスト内包表記(実践編)
Pythonリストとは
Pythonのリストは、整数、文字列、浮動小数点数、さらには他のリストなど、あらゆる型のオブジェクトを保持できる多目的なコンテナです。角括弧[]で表され、丸括弧()を使うタプルと区別されます。タプルとは異なり、リストはミュータブル(変更可能)であり、作成後に要素の追加、削除、変更が可能です。
このガイドでは以下を学びます。
- Pythonリストの理解
- 同質および異質リストの例
- 要素のアクセス、スライス、更新
- アイテムの削除と追加
- 組み込みリストメソッド
- 効率的なコードのためのループと内包表記
- リストのソートと反転
Pythonリストの例
リストは同質(すべての要素が同じ型)または異質(型が混在)のいずれかです。明確な例を示します。
# 同質リスト int_list = [1, 2, 3, 8, 33] animal_list = ['dog', 'cat', 'goat'] name_list = ['John', 'Travis', 'Sheila'] float_list = [2.2, 4.5, 9.8, 10.4] # 異質リスト mixed_list_1 = [2, 'cat', 34.33, 'Travis'] mixed_list_2 = [2.22, 33, 'pen']
リスト内の値へのアクセス
Pythonリストはゼロベースのインデックスです。負のインデックス-1は最後の要素を指します。
items = [3, 22, 30, 5.3, 20] print(items[0]) # 3 print(items[1]) # 22 print(items[-1]) # 20
Pythonリストのスライス
スライスはstart:stop構文で部分配列を抽出します。stopは含まれません。
items = [3, 22, 30, 5.3, 20] print(items[:]) # 全要素 print(items[1:3]) # [22, 30] print(items[:4]) # [3, 22, 30, 5.3] print(items[2:-1]) # [30, 5.3]
リストの更新
インデックスに新しい値を代入することで要素を変更します。
subjects = ['physics', 'chemistry', 'mathematics'] subjects[0] = 'biology' print(subjects) # ['biology', 'chemistry', 'mathematics']
リスト要素の削除
一般的な3つのアプローチ:
list.remove(value)– 最初に一致する値を削除。list.pop(index)– 指定インデックスの要素を削除し、その値を返す。del list[index]– 指定インデックスの要素を削除(値は返さない)。
nums = [3, 5, 7, 8, 9, 20] nums.remove(3) # [5, 7, 8, 9, 20] nums.pop(2) # 8を削除 # del nums[0] # 5を削除
リスト要素の追加
append()メソッドはアイテムをリストの末尾に追加します。
values = [3, 5, 7, 8, 9, 20]
values.append(3.33)
values.append('cats')
print(values) # [3, 5, 7, 8, 9, 20, 3.33, 'cats']
組み込みリスト関数とメソッド
len(list)– 要素数max(list),min(list)– 極値list(tuple)– タプルをリストに変換list.append(item)– 末尾に追加list.pop(index)– インデックス指定で削除list.remove(item)– 値指定で削除list.reverse()– インプレースで反転list.index(item)– 最初の出現位置のインデックス取得sum(list)– 数値要素の合計list.sort()– 昇順ソート;list.sort(reverse=True)で降順
values = [1, 7, 9, 3, 5] values.sort() print(values) # [1, 3, 5, 7, 9] values.sort(reverse=True) print(values) # [9, 7, 5, 3, 1]
リストのループ処理
forループで要素をイテレーションし、各アイテムを変更したり新しいリストを構築したりできます。
nums = [10, 20, 30, 40, 50, 60, 70]
# 各要素に5を加算(元のリストは変更されない)
for n in nums:
print(n + 5)
# スライスから新しいリストを構築
new_list = []
for n in nums[2:]:
new_list.append(n)
print(new_list) # [30, 40, 50, 60, 70]
リスト内包表記
リスト内包表記は、イテラブルからリストを生成する簡潔な構文を提供します。同等のforループより高速かつ可読性に優れます。
# 1から9の平方数 squares = [x**2 for x in range(1, 10)] print(squares) # [1, 4, 9, 16, 25, 36, 49, 64, 81]
まとめ
- Pythonリストはミュータブルで順序付きコレクション。
- インデックスを用いてアクセス、スライス、更新が可能。
- 組み込みメソッドで一般的なタスクを簡素化:append、remove、pop、sort、reverseなど。
- リスト内包表記でエレガントかつ効率的なリスト構築が可能。
- これらの基礎をマスターすることは、高度なPythonプログラミングの確固たる土台となる。
Python
- Python データ型マスター: 実践ガイド
- Python 演算子完全マスター: 包括的ガイド
- Python pass文完全マスター: 実践ガイド
- Python 関数引数完全マスター: 位置引数・キーワード引数・デフォルト引数
- Python辞書完全ガイド:作成、操作、高度なテクニック
- Pythonイテレータ完全ガイド:仕組みと自作方法
- Pythonクロージャ解説:ネスト関数が変数を捕捉する仕組み
- Python datetimeマスター:日付・時刻・タイムゾーン実践ガイド
- Pythonで平均を計算する:実践ガイド
- Python list.count() 完全ガイド:実践例付きで徹底解説
- Pythonリストから重複要素を削除する方法:順序保持と効率のバランス