Think Twice
IT技術メモ | Pythonのメモ
Created: 2021-10-31 / Updated: 2023-07-27

Pythonでリスト操作


Pythonのリストは組み込み型のひとつです。
便利なメソッドが多数用意されていますので、よく使いそうなメソッドをメモしておきます。

目次


要素追加系メソッド - append

リストに要素を追加するにはappendメソッドを利用します。

Copy
list = [100, 200, 300]
list.append(400)
print(list)

Copy
[100, 200, 300, 400]

参考

要素追加系メソッド - extend

リストにリストの要素を1階層展開してすべて追加するにはextendメソッドを利用します。

Copy
list1 = [100, 200, 300]
list2 = ["aaa", "bbb"]
list1.extend(list2)
print(list1)

Copy
[100, 200, 300, 'aaa', 'bbb']
extendと同じ挙動は、+演算子を使い+=とすることでも可能です。

ちなみに、extendの代わりにappendでリストを追加すると、リスト毎追加されてしまいます。

Copy
list1 = [100, 200, 300]
list2 = ["aaa", "bbb"]
list1.append(list2)  # appendでリストを追加する
print(list1)

Copy
[100, 200, 300, ['aaa', 'bbb']]

参考

要素追加系メソッド - +演算子

リストにリストの要素を1階層展開してすべて追加した新しいリストを取得するには、+演算子を利用します。

Copy
list1 = [100, 200, 300]
list2 = ["aaa", "bbb"]
list3 = list1 + list2
print(list3)
print(list1)
print(list2)

Copy
[100, 200, 300, 'aaa', 'bbb']
[100, 200, 300]
['aaa', 'bbb']

元のリストに破壊的に要素を追加するには+=を使います。

Copy
list4 = [400, 500]
list4 += ["ccc", "ddd"]
print(list4)

Copy
[400, 500, 'ccc', 'ddd']

参考

要素追加系メソッド - *演算子

リストの要素を繰り返したリストを取得するには、*演算子を利用します。

Copy
list1 = ["a"] * 3
print(list1)

Copy
['a', 'a', 'a']
Copy
list2 = [10, 20, 30] * 2
print(list2)
Copy
[10, 20, 30, 10, 20, 30]

元のリストに破壊的に変更し要素を追加するには*=を使います。

Copy
list3 = ["a", "b", "c"]
list3 *= 2
print(list3)

Copy
['a', 'b', 'c', 'a', 'b', 'c']

参考

チェック系メソッド - 長さチェック

リストの長さチェックにはlen関数を利用します。

Copy
len(<リスト>)

Copy
list = ["A", "B", "C", "D", "E"]
assert len(list) == 5

参考

サンプルソース

チェック系メソッド - リストに要素が含まれているか

リストに要素が含まれているかをチェックするには、in演算子を利用します。

Copy
<要素> in <リスト>

Copy
list = ["A", "B", "C", "D", "E"]
assert ("C" in list) == True

参考

サンプルソース

ソート系メソッド - sort

リストの要素を破壊的にソートするには、リストのメソッドであるsortを利用します。

Copy
list.sort()

元のリストのソート(破壊的)
Copy
list = [3, 10, 2, 1, 5]
list.sort()
assert list == [1, 2, 3, 5, 10]
逆順
Copy
list.sort(reverse=True)
assert list == [10, 5, 3, 2, 1]
キーを指定してソート
Copy
list = ["BB", "CCC", "A"]
list.sort(key=lambda x: -len(x)) # 文字数が多い順
assert list == ["CCC", "BB", "A"]

参考

サンプルソース

ソート系メソッド - sorted

リストをソートした新たなリストを返却するにはsorted関数を利用します。

Copy
new_list = sorted(<リスト>)

ソートされた新しいリストを返却
Copy
list = [3, 10, 2, 1, 5]
list2 = sorted(list)
assert list2 == [1, 2, 3, 5, 10]
assert list == [3, 10, 2, 1, 5] # 元のリストは変化なし
逆順
Copy
list3 = sorted(list, reverse=True)
assert list3 == [10, 5, 3, 2, 1]
assert list == [3, 10, 2, 1, 5] # 元のリストは変化なし
キーを指定してソート
Copy
list = ["BB", "CCC", "A"]
list4 = sorted(list, key=lambda x: -len(x)) # 文字数が多い順
assert list4 == ["CCC", "BB", "A"]
assert list == ["BB", "CCC", "A"] # 元のリストは変化なし

参考

関連メモ

サンプルソース

参考サイト