Pythonのlist型の使い方

投稿日: 2024年3月13日

Pythonのlist型は、複数の要素を順序付けて格納するデータ構造です。

今回はリストなんですね。

リストはデータを処理するときに大活躍するので覚えておいて損はない型になるよ。

リストは変更可能(mutable)で、異なるデータ型の要素を含むことができます。
リストは角括弧([])を使用して定義され、要素はカンマで区切られます。

リストの基本

リストの作成

Pythonにおいてリストを作成する方法はいくつかありますが、基本的な方法はとてもシンプルです。

my_list = [1, 2, 3]
print(my_list)  # 出力: [1, 2, 3]

mixed_list = [1, "apple", 3.14]
print(mixed_list)  # 出力: [1, 'apple', 3.14]

空のリストの作成

empty_list = []
print(empty_list)  # 出力: []

このコードは空のリストを作成しています。これは、後で要素を追加するための初期状態としてしばしば使用されます。

要素へのアクセス

リストの要素には、インデックスを使ってアクセスできます。インデックスは0から始まります。

my_list = ['a', 'b', 'c', 'd']
print(my_list[1])  # 出力: 'b'

リストのメソッド

メソッド内容
append(x)リストの末尾に要素xを追加します。
extend(iterable)イテラブルの全要素をリストに追加します。
insert(i, x)指定した位置iに要素xを挿入します。
remove(x)値xを持つ最初の要素を削除します。
pop([i])指定された位置iの要素をリストから削除し、その要素を返します。iが指定されない場合は、リストの最後の要素が削除されます。
clear()リストから全ての要素を削除します。
index(x[, start[, end]])値xを持つ最初の要素の位置を返します。
count(x)リスト内のxの出現回数を返します。
sort(key=None, reverse=False)リストの要素を並び替えます。
reverse()リストの要素の順序を逆にします。

要素の追加 append(x)メソッドの使用例

append(x)メソッドはPythonのリスト型で使用されるメソッドで、リストの末尾に新しい要素xを追加します。
このメソッドはリスト自体を変更し、追加された要素を含む新しいリストを返すのではなく、元のリストを直接変更(in-placeでの操作)します。返り値はNoneです。

my_list = [1, 2, 3]
my_list.append(4)
print(my_list)

この例では、リストmy_listに最初に1, 2, 3という3つの要素が含まれています。
append(4)メソッドを使って、4という要素をリストの末尾に追加しています。
print関数を使ってリストを出力すると、[1, 2, 3, 4]と表示され、新しい要素が末尾に追加されていることがわかります。

extend(iterable)メソッドの使用例

extend(iterable)メソッドは、Pythonのリスト型で使用されるメソッドで、引数として与えられたイテラブル(iterable)の全ての要素をリストの末尾に追加します。
このメソッドはリスト自体を変更し、新しいリストを返すのではなく、元のリストにイテラブルの要素を追加します。返り値はNoneです。

my_list = [1, 2, 3]
another_list = [4, 5, 6]
my_list.extend(another_list)
print(my_list)

この例では、my_listにanother_listの全ての要素(4, 5, 6)が追加されています。
extendメソッドを使用した結果、my_listは[1, 2, 3, 4, 5, 6]となり、another_listの各要素がmy_listの末尾に順に追加されました。

insert(i, x)メソッドの使用例

insert(i, x)メソッドは、Pythonのリスト型で使用されるメソッドで、リストの特定の位置iに要素xを挿入します。
このメソッドはリスト自体を変更し、新しいリストを返すのではなく、指定された位置に要素を挿入します。返り値はNoneです。

my_list = [1, 2, 4, 5]
my_list.insert(2, 3)  # 2番目の位置に3を挿入
print(my_list)  # 出力: [1, 2, 3, 4, 5]

この例では、my_listの2番目の位置(インデックスは0から始まるため、実際には3番目の要素の前)に3が挿入されています。
結果として、my_listは[1, 2, 3, 4, 5]となり、新たに挿入された要素3を含むようになりました。

remove(x)メソッドの使用例

remove(x)メソッドはPythonのリスト型で使用されるメソッドで、リストから値xを持つ最初の要素を削除します。
このメソッドはリスト自体を変更し(in-placeでの操作)、返り値はNoneです。
指定した値がリスト内に存在しない場合、ValueErrorが発生します。

my_list = [1, 2, 3, 4, 3, 5]
my_list.remove(3)  # 3を持つ最初の要素を削除
print(my_list)  # 出力: [1, 2, 4, 3, 5]

この例では、my_listから3を持つ最初の要素(インデックス2の位置にある)が削除されています。
リストに3が複数存在していても、removeメソッドは最初に見つかった3のみを削除します。

pop([i])メソッドの使用例

pop([i])メソッドはPythonのリスト型で使用されるメソッドで、リストから指定された位置iの要素を削除し、その要素を返します。
位置iが指定されない場合、リストの最後の要素が削除され返されます。このメソッドはリスト自体を変更し(in-placeでの操作)、削除された要素を返します。

my_list = [1, 2, 3, 4, 5]
popped_item = my_list.pop()
print(popped_item)  # 出力: 5
print(my_list)      # 出力: [1, 2, 3, 4]

この例では、pop()メソッドを引数なしで呼び出しています。これにより、my_listの最後の要素5が削除され、削除された要素がpopped_itemに格納されています。

指定された位置の要素を削除

my_list = [1, 2, 3, 4, 5]
popped_item = my_list.pop(2)
print(popped_item)  # 出力: 3
print(my_list)      # 出力: [1, 2, 4, 5]

この例では、pop(2)メソッドを使用して、インデックス2(リストの3番目の要素)にある3が削除されています。

clear()メソッドの使用例

clear()メソッドはPythonのリスト型で使用されるメソッドで、リストから全ての要素を削除し、空のリストにします。
このメソッドはリスト自体を変更し(in-placeでの操作)、返り値はNoneです。
clear()メソッドを使用すると、リストの長さが0になりますが、リストオブジェクト自体はそのまま残ります。

my_list = [1, 2, 3, 4, 5]
print(f"クリア前のリスト: {my_list}")  # クリア前のリスト: [1, 2, 3, 4, 5]

my_list.clear()
print(f"クリア後のリスト: {my_list}")  # クリア後のリスト: []

この例では、clear()メソッドを呼び出すことでmy_listの全ての要素が削除され、リストが空になっています。

リストの操作

スライス

リストの一部を取り出すには、スライスを使用します。

my_list = [0, 1, 2, 3, 4, 5]
sub_list = my_list[1:4]
print(sub_list)  # 出力: [1, 2, 3]

リストの結合

+演算子を使用して、リスト同士を結合できます。

list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined_list = list1 + list2
print(combined_list)  # 出力: [1, 2, 3, 4, 5, 6]

リスト内包表記

リスト内包表記は、リストを生成するためのコンパクトな方法です。

squares = [x**2 for x in range(10)]
print(squares)  # 出力: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

記事