Pythonのコンテナの一つであるリストに関して詳しく見ていきましょう。リストを自由に操作するためのメソッド11個の使い方を解説します。
メソッドとは?
メソッドとはあるデータ型専用の関数のことです。なので、以下で紹介してるメソッドはリスト型以外のデータには使えません。
もちろん、ほかのタプル型や辞書型にもメソッドがあります。
メソッドを使うときは「リスト.メソッド()」のようにドット(.)でつなげて書きます。
リストのメソッド一覧
追加
append
- 「リスト.append(要素)」と書きカッコ内の要素が末尾に追加される
- どんなデータ型でも追加できる
- 複数の要素は追加できない
1 2 3 4 5 6 7 8 9 |
num = [1, 2, 3] num.append(4) num.append('Hello') print(num) #出力結果 [1, 2, 3, 4, 'Hello'] |
以下のようにリストの中にリストを追加することもできます。
1 2 3 4 5 6 7 |
num = [1, 2, 3] num.append([4, 5]) print(num) #出力結果 [1, 2, 3, [4, 5]] |
extend
- 「リスト.extend(イテラブル)」と書く
- イテラブルのすべての要素をリストに追加できます。
- リストやタプルの要素を追加できる
イテラブルとは反復可能という意味。リストやタプル、range関数などfor文でループさせることができるものだと思っておけばOK
1 2 3 4 5 6 7 8 9 |
#リストにリストの要素を追加 num = [1, 2, 3] wor = ['a', 'b', 'c'] num.extend(wor) print(num) #出力結果 [1, 2, 3, 'a', 'b', 'c'] |
1 2 3 4 5 6 7 8 9 |
#リストにタプルの要素を追加 num = [1, 2, 3] wor = ('a', 'b', 'c') num.extend(wor) print(num) #出力結果 [1, 2, 3, 'a', 'b', 'c'] |
1 2 3 4 5 6 7 8 9 |
#リストにrange関数の要素を追加 num = [1, 2, 3] num.extend(range(3)) print(num) #出力結果 [1, 2, 3, 0, 1, 2] |
insert
- 「リスト.insert(インデックス, 要素)」と書く
- 指定したインデックスの位置に要素が挿入される
- リストの長さを超える場合は末尾に追加される
1 2 3 4 5 6 7 8 |
#先頭に追加 num = [1, 2, 3] num.insert(0, 'a') print(num) #出力結果 ['a', 1, 2, 3] |
1 2 3 4 5 6 7 |
num = [1, 2, 3] num.insert(2, 'a') print(num) #出力結果 [1, 2, 'a', 3] |
1 2 3 4 5 6 7 8 9 10 |
num = [1, 2, 3] num.insert(10, 'a') print(num) print(num[3]) #出力結果 [1, 2, 3, 'a'] a |
削除
remove
- 「リスト.remove(要素)」と書く
- 指定した要素を削除
- リストに含まれていない要素のときは「ValueError」になる
1 2 3 4 5 6 7 |
num = [1, 2, 3] num.remove(2) print(num) #出力結果 [1, 3] |
1 2 3 4 5 6 7 |
num = [1, 2, 3] num.remove(4) print(num) #出力結果 ValueError: list.remove(x): x not in list |
pop
- 「リスト.pop(インデックス)」と書く
- 指定したインデックスの要素を削除
- リストの長さを超える場合は「IndexError」になる
1 2 3 4 5 6 7 |
num = [1, 2, 3] num.pop(1) print(num) #出力結果 [1, 3] |
1 2 3 4 5 6 7 8 |
#インデックスなしなら末尾を削除 num = [1, 2, 3] num.pop() print(num) #出力結果 [1, 2] |
1 2 3 4 5 6 7 8 |
#インデックスを超えるならエラー num = [1, 2, 3] num.pop(5) print(num) #出力結果 IndexError: pop index out of range |
clear
- リストの中身をすべて空にします。
- 「リスト.clear()」と書く
1 2 3 4 5 6 7 |
num = [1, 2, 3] num.clear() print(num) #出力結果 [] |
ソート(並べ替え)
sort
- 「リスト.sort()」
- 小さい順に並べ替えます。
- 「リスト.sort(reverse=True)」
- 大きいものから順に並べる
- 大小比較できない物はソート不可能
- 数字と文字の混合などはムリ
- 「TypeError」になる
1 2 3 4 5 6 7 8 9 10 11 12 |
#小さいもの順 num = [1, 5, 100, 2, 25, 3] wor = ['c', 'e', 'x', 'b', 'a'] num.sort() wor.sort() print(num) print(wor) #出力結果 [1, 2, 3, 5, 25, 100] ['a', 'b', 'c', 'e', 'x'] |
1 2 3 4 5 6 7 8 9 10 11 12 |
#大きいもの順 num = [1, 5, 100, 2, 25, 3] wor = ['c', 'e', 'x', 'b', 'a'] num.sort(reverse=True) wor.sort(reverse=True) print(num) print(wor) #出力結果 [100, 25, 5, 3, 2, 1] ['x', 'e', 'c', 'b', 'a'] |
1 2 3 4 5 6 7 8 |
#エラー num = [1, 5, 100, 2, 25, 3, 'b', 'a'] num.sort(reverse=True) print(num) #出力結果 TypeError: '<' not supported between instances of 'int' and 'str' |
revers
- 「リスト.reverse()」と書く
- リストの中身を逆順にする
- 数の大小は関係なし
1 2 3 4 5 6 7 8 9 10 11 |
num = [1, 5, 100, 2, 25, 3] wor = ['c', 'e', 'x', 'b', 'a'] num.reverse() wor.reverse() print(num) print(wor) #出力結果 [3, 25, 2, 100, 5, 1] ['a', 'b', 'x', 'e', 'c'] |
その他
count(出現回数)
- 「リスト.count(要素)」と書く
- 要素の数を返す
- ない要素は0になる
1 2 3 4 5 6 7 8 |
num = [1, 5, 1, 2, 25, 1] print(num.count(1)) print(num.count(10)) #出力結果 3 #1の数 0 #10の数 |
copy
- 「リスト.copy()」と書く
- 浅いコピーを返す(2個目の例)
1 2 3 4 5 6 7 8 9 10 11 |
num = [1, 2, 3] new = num.copy() new.append(5) print(num) print(new) #出力結果 [1, 2, 3] #numリスト [1, 2, 3, 5] #newリスト |
1 2 3 4 5 6 7 8 9 10 11 |
num = [1, 2, 3] new = num new.append(5) print(num) print(new) #出力結果 [1, 2, 3, 5] #numリスト [1, 2, 3, 5] #newリスト |
copyメソッドを使った場合(1つ目の例)と代入した場合(2つ目の例)ではappendメソッドで要素を追加したときの結果が異なります。
1つ目はnewだけに要素が追加されていますが、2つ目は両方ともに要素が追加されています。
これは「参照」を理解する必要があるので、別の記事でまとめたいと思います。
index
- 「リスト.index(要素)」
- 最初の要素のインデックスを返す
- 「リスト.index(要素,スタート ,ストップ)」
- スタートからストップの間で最初に出てくる要素のインデックスを返す
- スタートのみ指定することもできる
- 要素がないと「ValueError」になる
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
wor = ['a', 'x', 'b', 'c', 'e', 'x'] #要素のみ指定 print(wor.index('x')) #スタートとストップも指定 print(wor.index('x', 2, 5)) #スタートのみ指定 print(wor.index('x', 5)) #出力結果 1 4 6 |
まとめ
今回は11個のメソッドをまとめました。
分量は多いですが必要な時に見に来てもらえれば幸いです。
- コンテナ4種類「リスト・タプル・辞書・セット」とは?
- リストとは?インデックス・要素数・結合する方法を解説
- リストに使えるメソッド11個「追加・削除・ソート」
- for文でリストのインデックスと要素を取り出す(enumerate)
- リストで内包表記する方法「for・if・lambdaの書き方」
- タプルとは?追加・削除・結合・リストに変換する方法
- リスト・タプルをスライスする方法とインデックスの覚え方
- 辞書とは?追加・削除・上書きする方法
- 辞書に使えるメソッド5個(keys・values・items・get・setdefault)
- for文で辞書のキー・バリューを取り出す方法(enumerate・items・keys・values)
関連記事
プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]