【Python】リスト(list)で使用できるメソッド一覧
2022.12.30 /
本記事ではPythonのリスト(list)で使用できるメソッドをすべてご紹介します。
複数の値をまとめるデータ型のリストには様々なメソッドが用意されています。各メソッドを使いこなすことで、Pythonによるプログラム作成がより簡単になります。
ぜひ本記事「リスト(list)で使用できるメソッド一覧」より、リストのメソッドについて理解を深めてください。
Python:リストとは
Pythonのリストとは、複数の値を順番に格納できるデータ型です。リストの特徴は次の通りです。
- 複数の値を順番に格納する
- 各要素にはインデックス番号が振られる
- インデックス番号は0から始まる
- イミュータブル(変更可能)なため、好きな箇所に要素を追加・削除ができる
- 格納する要素は型が異なっても可
リストに関してより詳しく知りたい方は以下記事をご参照ください。
【Python】リスト(list)とは:基本から応用まで使い方をまとめて紹介
Python:リスト(list)で使用できるメソッド一覧
append()
append()メソッドはリストに要素を追加するメソッドです。追加した要素は末尾に追加されます。
list.append(item)
パラメーターitemには追加したい要素(文字列、数値など)を指定します。またappend()による返り値はありません。
>>> lists = ['Tokyo', 'Kanagawa']
>>> lists.append('Saitama')
>>> lists
['Tokyo', 'Kanagawa', 'Saitama']
リストにリストを追加すると次のように、一つの要素としてリストが末尾に追加されます。
>>> lists = ['Tokyo', 'Kanagawa']
>>> pre_list = ['Saitama', 'Gunma']
>>> lists.append(pre_list)
>>> lists
['Tokyo', 'Kanagawa', ['Saitama', 'Gunma']]
リストの特徴の一つに、どんな型でもリストに格納できます。そのため次のように異なる型をappend()メソッドで追加しても問題ないです。
>>> lists = ['Tokyo', 'Kanagawa']
>>> lists.append(54)
>>> lists
['Tokyo', 'Kanagawa', 54]
clear()
clear()メソッドはリストからすべての要素を取り除くメソッドです。返り値はありません。
list.clear()
>>> lists = ['Tokyo', 'Kanagawa']
>>> lists.clear()
>>> lists
[]
copy()
copy()メソッドはリストのコピーを返すメソッドです。返り値はコピーされたリストです。
list.copy()
>>> lists = ['Tokyo', 'Kanagawa']
>>> copied_lists = lists.copy()
>>> copied_lists.append("Osaka")
>>> lists
['Tokyo', 'Kanagawa']
>>> copied_lists
['Tokyo', 'Kanagawa', 'Osaka']
上記コードからわかるように、オリジナルのリストとコピーしたリストでは異なるメモリ位置を指しているため、それぞれ異なるリストとして扱うことができます。
つまりコピーしたリストを変更しても、オリジナルのリストには変更が反映されないということです。
新しいリストを既存のリストから=演算子を使って作成すると、新しいリストは既存のリストと同じメモリ位置を指すことになります。つまりどちらかを変更すると、もう片方のリストも同じように変更されてしまうということです。
>>> lists = ['Tokyo', 'Kanagawa']
>>> copied_lists = lists
>>> copied_lists.append("Osaka")
>>> lists
['Tokyo', 'Kanagawa', 'Osaka']
>>> copied_lists
['Tokyo', 'Kanagawa', 'Osaka']
count()
count()メソッドは指定した要素がリストの中にいくつあるか返すメソッドです。指定した要素が存在しなかった場合は0を返します。
list.count(item)
パラメーターitemにカウントしたい要素を指定します。返り値はinterger型です。
>>> lists = ['Tokyo', 'Kanagawa', 'Osaka', 'Tokyo']
>>> lists.count('Tokyo')
2
パラメーターitemを指定しないとTypeErrorが発生します。
>>> lists = ['Tokyo', 'Kanagawa', 'Osaka', 'Tokyo']
>>> lists.count()
TypeError: list.count() takes exactly one argument (0 given)
extend()
extend()メソッドはリストにイテラブルな型(リストやタプル、セット、辞書など)を結合するメソッドです。
list.extend(iterable)
パラメーターiterableにはリストやタプル、セット、辞書などイテラブルな型を指定します。指定したイテラブルな型の要素はリストの末尾に追加されます。
>>> lists = ['Tokyo', 'Kanagawa']
>>> anotherLists = ['Osaka', 'Hyogo']
>>> lists.extend(anotherLists)
>>> lists
['Tokyo', 'Kanagawa', 'Osaka', 'Hyogo']
リストに異なるデータ型のタプルの要素を追加することもできます。
>>> lists = ['Tokyo', 'Kanagawa']
>>> anotherTaple = ('Osaka', 'Hyogo')
>>> lists.extend(anotherTaple)
>>> lists
['Tokyo', 'Kanagawa', 'Osaka', 'Hyogo']
index()
index()メソッドは指定した要素のインデックスを返すメソッドです。
list.index(element, start, end)
パラメーター | 説明 |
---|---|
element | インデックスを取得したい要素を指定 |
start | 検索を始めるインデックスを指定(オプション) |
end | 検索を終えるインデックスを指定(オプション) |
>>> lists = ['Tokyo', 'Kanagawa', 'Osaka', 'Kanagawa', 'Gunma', 'Kanagawa']
>>> lists.index('Kanagawa')
1
>>> lists.index('Kanagawa', 2)
3
上記コードからわかるように、最初に見つけた要素のインデックスを返します。
リストのインデックスは0から始まります
指定した要素がリストにない場合、ValueErrorが発生します。
>>> lists = ['Tokyo', 'Kanagawa', 'Osaka']
>>> lists.index('Aichi')
ValueError: 'Aichi' is not in list
insert()
insert()メソッドはリストの指定した位置に要素を挿入するメソッドです。返り値はありません。
list.insert(index, value)
パラメーター | 説明 |
---|---|
index | 要素を挿入するインデックス |
value | 挿入する要素(string, integer, list, tupleなど) |
>>> lists = ['python', 'Django']
>>> lists.insert(1, 'Java')
>>> lists
['python', 'Java', 'Django']
指定したindexがリストの長さ以上の場合、リストの末尾に要素を挿入します。
>>> lists = ['Tokyo', 'Kanagawa', 'Osaka']
>>> lists.insert(10, 'Tochigi')
>>> lists
['Tokyo', 'Kanagawa', 'Osaka', 'Tochigi']
pop()
pop()メソッドは指定したインデックスの要素を返し、リストからその要素を削除するメソッドです。
list.pop(index)
>>> names = ["田中", "鈴木", "佐藤",]
>>> names.pop(0)
'田中'
>>> names
['鈴木', '佐藤']
パラメーターindexを指定しない場合、リストの末尾の要素が指定されます。
>>> names = ["田中", "鈴木", "佐藤",]
>>> names.pop()
'佐藤'
>>> names
["田中", "鈴木"]
指定したindexがリストに存在しない場合、IndexErrorが発生します。
>>> lists = ['Tokyo', 'Kanagawa', 'Osaka']
>>> lists.pop(3)
IndexError: pop index out of range
remove()
remove()メソッドはリストから指定した値を削除するメソッドです。返り値はありません。
list.remove(item)
>>> lists = ['python', 'Django']
>>> lists.remove('python')
>>> lists
['Django']
パラメーターitemには削除したい要素の値を指定します。リストに指定した値が複数ある場合は、最初に検索される要素が削除されます。
>>> lists = ['Tokyo', 'Kanagawa', 'Osaka', 'Kanagawa']
>>> lists.remove('Kanagawa')
>>> lists
['Tokyo', 'Osaka', 'Kanagawa']
リストに存在しない値を指定するとValueErrorが発生します。
>>> lists = ['python', 'Django']
>>> lists.remove('office54')
>>> lists
ValueError: list.remove(x): x not in list
reverse()
reverse()メソッドはリスト内の要素の順番を逆にするメソッドです。最初の要素は末尾に、二番目の要素は末尾から二番目の位置になるということです。reverse()メソッドによる返り値はありません。
list.reverse()
>>> lists = ['Tokyo', 'Kanagawa', 'Osaka', 'Chiba']
>>> lists.reverse()
>>> lists
['Chiba', 'Osaka', 'Kanagawa', 'Tokyo']
sort()
sort()メソッドはリスト内の要素を昇順または降順で並び替えるメソッドです。返り値はありません。
list.sort(key=None, reverse=False)
要素を昇順にするには単にsort()メソッドを使用します。
>>> numbers = [4,7,2,6]
>>> numbers.sort()
>>> numbers
[2, 4, 6, 7]
リスト内の要素を降順に並び替えたい場合は、sort()メソッドにreverse=Trueを指定します。
>>> numbers = [4,7,2,6]
>>> numbers.sort(reverse=True)
>>> numbers
[7, 6, 4, 2]