Python

【Python】リストの基本操作(要素追加、要素取得)

MAX

pythonのlistの基本的な操作である要素の追加と要素の取得方法について。

なおリストなミュータブルなので、リストを操作する場合、破壊的な操作なのかどうかを常に意識しながら書いた方が、思わぬバグが減りやすい。

https://docs.python.org/ja/3/library/stdtypes.html?highlight=list#typesseq-mutable

スポンサーリンク

要素追加

要素の追加はappendかinsertがある。

またリスト同士を連結する方法もある。

appendで要素追加

appendで要素を追加する場合、必ず末尾に要素が追加される。

1list_a = [0, 1, 2, 3, 4]
2
3# appendで末尾に追加
4list_a.append(5)
5print(f"{list_a=}")
6# list_a=[0, 1, 2, 3, 4, 5]

insertで要素追加

insertで要素を追加する場合、追加するインデックスを指定できる。

insertは追加する場所を指定できて便利だが、乱用するとデータ構造が分かりにくくなる可能性があるので注意。

1# i番目の要素の前にxを追加する
2list.append(i, x)

indexに正の値を指定

1list_a = [0, 1, 2, 3, 4]
2# リストの0番目に9を追加
3list_a.insert(0, 9)
4print(f"{list_a=}")
5# list_a=[9, 0, 1, 2, 3, 4]

上記の例の場合、正確には、0番目のインデックスの前に値を追加することになる。

indexに負の値を指定

インデックスには負数を指定することも可能。

1list_a = [0, 1, 2, 3, 4]
2list_a.insert(-1, 10)
3print(f"{list_a=}")
4# list_a=[0, 1, 2, 3, 10, 4]

この場合、「-1」番目(一番末尾)のインデックスの前に値を追加することになる。

indexに元リストよりも大きな値を指定

元のリストよりも大きなインデックスを指定すると、末尾に要素が追加される。

1list_a = [0, 1, 2, 3, 4]
2list_a.insert(10, 10)
3print(f"{list_a=}")
4# list_a=[0, 1, 2, 3, 4, 10]

要素入替

インデックス番号を指定することで、要素を入れ替えることができる。

1list_a = [0, 1, 2, 3, 4]
2# 末尾の要素を「5」に入れ替え
3list_a[-1] = 5
4# list_a=[0, 1, 2, 3, 5]

インデックスをスライス指定することで、複数の値を入れ替えることも可能。

1list_a = [0, 1, 2, 3, 4]
2list_a[2:4] = [5]
3# list_a=[0, 1, 5, 4]

要素取得

インデックスを指定したり、popを使うことでリストの要素を取得できる。

popをすると、元のリストも変更される。

index指定で要素取得

インデックスを指定することで値を取得する。

当然、元のリストが変更されることはない。

1list_a = [0, 1, 2, 3, 4]
2value = list_a[0]
3print(f"{list_a=}")
4print(f"{value=}")
5# list_a=[0, 1, 2, 3, 4]
6# value=0

スライスでインデックスを範囲指定して取得することも可能。

1list_a = [0, 1, 2, 3, 4]
2values = list_a[:-3]
3print(f"{list_a=}")
4print(f"{values=}")
5# list_a=[0, 1, 2, 3, 4]
6# values=[0, 1]

インデックスをスライスで指定した場合、取得した値はリストになる。

popで要素取得

popはリストから値を取得する時に、元のリストから取得した値がなくなる。

1# i番目の値を取得。デフォルト値は-1なので、末尾の値が取り出される。
2list.pop(i)
3
4list_a = [0, 1, 2, 3, 4]
5# 末尾の要素を取り出し
6value = list_a.pop()
7print(f"{list_a=}")
8print(f"{value=}")
9# list_a=[0, 1, 2, 3]
10# value=4

取得した値が元のリストからなくなる。

1list_a = [0, 1, 2, 3, 4]
2# 先頭の要素を取り出し
3value = list_a.pop(0)
4print(f"{list_a=}")
5print(f"{value=}"
6# list_a=[1, 2, 3, 4]
7# value=0)
スポンサーリンク
ABOUT ME
MAX
MAX
ITエンジニア、データサイエンティスト
新卒でSIerに入社し、フリーランスになってWEB系へ転向。
その後AIの世界へ足を踏み入れ、正社員に戻る。 テーブルデータの分析がメイン。
スポンサーリンク
記事URLをコピーしました