Pythonのlist
とは?
Pythonのlist
は、複数の値(要素)を順序付けて保持できるデータ型の一つです。リストは、角括弧[ ]
で囲まれ、要素同士はカンマ(,
)で区切って記述します。
numbers = [1, 2, 3, 4, 5]
fruits = ["apple", "banana", "cherry"]
mixed = [1, "two", 3.0, True]
上の例のように、list
は数値、文字列、ブール値、さらには別のリストなど、異なる型の要素を同時に格納することができます。また、リストは**ミュータブル(変更可能)**なオブジェクトなので、後から要素を追加、削除、更新することが容易です。
リストの主な特徴
-
順序がある:
リストの要素は挿入した順序を保持し、インデックスでアクセスできます。numbers[0]
は1
、fruits[1]
は"banana"
のように、0番目から順に参照します。 -
変更可能(Mutable):
リストは作成後も、要素を追加したり、削除したり、値を変更したりできます。 -
任意のデータ型を格納可能:
整数、文字列、オブジェクト、他のリストなど、あらゆるPythonオブジェクトを要素として保持できます。
リストの基本操作
要素へのアクセス
numbers = [10, 20, 30, 40, 50]
print(numbers[0]) # 10を表示
print(numbers[4]) # 50を表示
インデックスは0から始まります。また、負のインデックスを使って、末尾からカウントすることも可能です。
print(numbers[-1]) # 最後の要素(50)
print(numbers[-2]) # 最後から2番目の要素(40)
要素のスライス
スライス記法を使うと、リストの一部を抜き出した新しいリストを作成できます。
numbers = [10, 20, 30, 40, 50, 60]
print(numbers[1:4]) # [20, 30, 40]
print(numbers[:3]) # [10, 20, 30] 先頭~インデックス2まで
print(numbers[3:]) # [40, 50, 60] インデックス3以降すべて
print(numbers[::2]) # [10, 30, 50] ステップ2で取り出し
要素の変更
リストはミュータブルなので、以下のように特定の要素を書き換えられます。
fruits = ["apple", "banana", "cherry"]
fruits[1] = "blueberry"
print(fruits) # ["apple", "blueberry", "cherry"]
要素の追加・削除
-
要素の追加:
append()
メソッドを使えば、リストの末尾に要素を追加できます。また、insert()
を使えば指定した位置に挿入することも可能です。
fruits = ["apple", "banana"]
fruits.append("cherry")
print(fruits) # ["apple", "banana", "cherry"]
fruits.insert(1, "orange")
print(fruits) # ["apple", "orange", "banana", "cherry"]
-
要素の削除:
remove()
で指定した値を削除、pop()
で指定したインデックスまたは末尾の要素を取り除きます。del
キーワードを用いて要素やスライスを削除することもできます。
items = [1, 2, 3, 4, 5]
items.remove(3) # 値"3"を削除
print(items) # [1, 2, 4, 5]
popped = items.pop() # 最後の要素を取り出す
print(popped) # 5
print(items) # [1, 2, 4]
del items[1] # インデックス1の要素を削除
print(items) # [1, 4]
リストの結合・拡張
-
+
演算子を使えば、2つのリストを結合できます。 -
extend()
メソッドを使えば、あるリストに別のリストの要素を追加できます。
a = [1, 2, 3]
b = [4, 5, 6]
c = a + b
print(c) # [1, 2, 3, 4, 5, 6]
a.extend(b)
print(a) # [1, 2, 3, 4, 5, 6]
ソート・並び替え
sort()
メソッドでリストを昇順に並び替えることができます。また、組み込み関数sorted()
を使えば、元のリストを変更せずに並び替えた新しいリストを取得可能です。
numbers = [5, 2, 9, 1, 7]
numbers.sort()
print(numbers) # [1, 2, 5, 7, 9]
letters = ["b", "a", "d", "c"]
sorted_letters = sorted(letters)
print(sorted_letters) # ["a", "b", "c", "d"]
print(letters) # ["b", "a", "d", "c"] 元のリストはそのまま
リスト内包表記
リストを生成・加工する際に便利な書き方が、リスト内包表記です。これは、ある条件や式を用いて簡潔に新しいリストを作成できる構文です。
numbers = [1, 2, 3, 4, 5]
squares = [x * x for x in numbers]
print(squares) # [1, 4, 9, 16, 25]
even_squares = [x * x for x in numbers if x % 2 == 0]
print(even_squares) # [4, 16]
まとめ
Pythonのlist
は、順序付きでミュータブルなコレクション型として、非常に汎用的に使われます。
- 異なる型の要素を一緒に扱える柔軟さ
- 要素の追加・削除・更新が簡単
- スライスや並び替え、内包表記など強力な操作が可能
これらの特徴を活用すれば、データを整理・加工したり、アルゴリズムを組み立てたりする際に大いに役立ちます。Pythonでプログラミングをする上で、list
型の基本的な使い方や操作は必須の知識と言えるでしょう。