Pythonのリストは組み込み型のひとつです。
便利なメソッドが多数用意されていますので、よく使いそうなメソッドをメモしておきます。
目次
要素追加系メソッド - append
リストに要素を追加するにはappend
メソッドを利用します。
list = [100, 200, 300] list.append(400) print(list)
[100, 200, 300, 400]
参考
要素追加系メソッド - extend
リストにリストの要素を1階層展開してすべて追加するにはextend
メソッドを利用します。
list1 = [100, 200, 300] list2 = ["aaa", "bbb"] list1.extend(list2) print(list1)
[100, 200, 300, 'aaa', 'bbb']
extend
と同じ挙動は、+演算子を使い+=
とすることでも可能です。
ちなみに、extend
の代わりにappend
でリストを追加すると、リスト毎追加されてしまいます。
list1 = [100, 200, 300] list2 = ["aaa", "bbb"] list1.append(list2) # appendでリストを追加する print(list1)
[100, 200, 300, ['aaa', 'bbb']]
参考
要素追加系メソッド - +演算子
リストにリストの要素を1階層展開してすべて追加した新しいリストを取得するには、+
演算子を利用します。
list1 = [100, 200, 300] list2 = ["aaa", "bbb"] list3 = list1 + list2 print(list3) print(list1) print(list2)
[100, 200, 300, 'aaa', 'bbb'] [100, 200, 300] ['aaa', 'bbb']
- 新しいリストが返却されるので、元のリスト(ここではlist1, list2)に変化はありません。
元のリストに破壊的に要素を追加するには+=
を使います。
list4 = [400, 500] list4 += ["ccc", "ddd"] print(list4)
[400, 500, 'ccc', 'ddd']
- 同じ挙動をするメソッドとしてはextendがあります。
参考
- (Let'sプログラミング) リストへの要素の追加と別のリストとの結合
- (@IT) [解決!Python]リスト(配列)に要素を追加するには(+演算子/+=演算子/append/extend/insertメソッド)
要素追加系メソッド - *演算子
リストの要素を繰り返したリストを取得するには、*
演算子を利用します。
list1 = ["a"] * 3 print(list1)
['a', 'a', 'a']
list2 = [10, 20, 30] * 2 print(list2)
[10, 20, 30, 10, 20, 30]
- 新しいリストが返却されるので、元のリスト(ここではlist1やlist2)に変化はありません。
元のリストに破壊的に変更し要素を追加するには*=
を使います。
list3 = ["a", "b", "c"] list3 *= 2 print(list3)
['a', 'b', 'c', 'a', 'b', 'c']
参考
チェック系メソッド - 長さチェック
リストの長さチェックにはlen関数
を利用します。
len(<リスト>)
例
list = ["A", "B", "C", "D", "E"] assert len(list) == 5
参考
サンプルソース
チェック系メソッド - リストに要素が含まれているか
リストに要素が含まれているかをチェックするには、in演算子
を利用します。
<要素> in <リスト>
<要素>
が<リスト>
に含まれている場合、True
が、含まれない場合False
が返却されます。
例
list = ["A", "B", "C", "D", "E"] assert ("C" in list) == True
参考
サンプルソース
ソート系メソッド - sort
リストの要素を破壊的にソートするには、リストのメソッドであるsort
を利用します。
list.sort()
- 引数
reverse=True
を指定すると、逆順ソートになります。 - 引数
key
を指定すると、様々なキーでソートできます。
例
元のリストのソート(破壊的)
list = [3, 10, 2, 1, 5] list.sort() assert list == [1, 2, 3, 5, 10]
逆順
list.sort(reverse=True) assert list == [10, 5, 3, 2, 1]
キーを指定してソート
list = ["BB", "CCC", "A"] list.sort(key=lambda x: -len(x)) # 文字数が多い順 assert list == ["CCC", "BB", "A"]
参考
サンプルソース
ソート系メソッド - sorted
リストをソートした新たなリストを返却するにはsorted
関数を利用します。
new_list = sorted(<リスト>)
- 引数
reverse=True
を指定すると、逆順ソートになります。 - 引数
key
を指定すると、様々なキーでソートできます。
例
ソートされた新しいリストを返却
list = [3, 10, 2, 1, 5] list2 = sorted(list) assert list2 == [1, 2, 3, 5, 10] assert list == [3, 10, 2, 1, 5] # 元のリストは変化なし
逆順
list3 = sorted(list, reverse=True) assert list3 == [10, 5, 3, 2, 1] assert list == [3, 10, 2, 1, 5] # 元のリストは変化なし
キーを指定してソート
list = ["BB", "CCC", "A"] list4 = sorted(list, key=lambda x: -len(x)) # 文字数が多い順 assert list4 == ["CCC", "BB", "A"] assert list == ["BB", "CCC", "A"] # 元のリストは変化なし
参考
関連メモ
サンプルソース
参考サイト
- (note.nkmk.me) Pythonでリストをソートするsortとsortedの違い
- (@IT) [解決!Python]リスト(配列)に要素を追加するには(+演算子/+=演算子/append/extend/insertメソッド)
- (Let'sプログラミング) リストに指定した値と同じ要素が含まれているか確認する
- (Let'sプログラミング) リストの長さ(要素数)を取得する
- (Let'sプログラミング) リストへの要素の追加と別のリストとの結合
- (note.nkmk.me) Pythonでリストをソートするsortとsortedの違い
- (Python Carnival) 【Python3入門】*(アスタリスク)1個の機能まとめ