2021/12/16

Python List型 基本的な使い方まとめ

Python List型の使い方

listaとは順番に様々なデータを格納するコンテナの一種.

listのほかにtuple, set, dictが存在する.
  • tuple : 順番に並んでいる.要素の変更は出来ない.
  • set : 順番を持たない集合,重複は不可.要素の変更は可能.
  • dict : キーによって要素が管理される.要素の変更は可能.

初期化

空のlistの宣言

list_sample = []
print(list_sample)
>>[]

任意の値で初期化

list_sample = [1,2,3,4,5]
print(list_sample)
>>[1, 2, 3, 4, 5]

任意の要素数で初期化

list_sample = [0]*5
print(list_sample)
>>[0, 0, 0, 0, 0]

連番で初期化

rangeを利用すれば逆順や,階差などもっと複雑なlistも宣言できます
list_sample = [i for i in range(5)]
print(list_sample)
>>[0, 1, 2, 3, 4]

他のコンテナデータ型で初期化

既に存在するlistと同じ要素数のlistを用意する
※コンテナデータ型とはlistやdictなどのデータを格納する容器のこと
data_A = [2,5,3,7,9]
list_sample_A = [0]*len(data_A)
print(list_sample_A)
>>[0, 0, 0, 0, 0]

参照

インデックスを用いてアクセスする

list_sample_A = [4,2,8,5,3,6,1,0,7,9]
tmp_A = list_sample_A[4]
print(tmp_A)
>>3

インデックスを用いて末尾からアクセスする

インデックスを−1とした場合,末尾から1番目の要素にアクセスする
list_sample_A = [4,2,8,5,3,6,1,0,7,9]
tmp = list_sample_A[-2]
print(tmp)
>>7

スライスを用いて先頭から任意の数の要素を取り出す

先頭から任意の数の要素を取り出す
list_sample_A = [4,2,8,5,3,6,1,0,7,9]
tmp = list_sample_A[:5]
print(tmp)
>>[4, 2, 8, 5, 3]

スライスを用いて末尾から任意の数の要素を取り出す

末尾から任意の数の要素を取り出す
list_sample_A = [4,2,8,5,3,6,1,0,7,9]
tmp = list_sample_A[5:]
print(tmp)
>>[6, 1, 0, 7, 9]

スライスを用いて任意の範囲の要素を取り出す

任意の範囲の要素を取り出す
list_sample_A = [4,2,8,5,3,6,1,0,7,9]
tmp = list_sample_A[3:6]
print(tmp)
>>[5, 3, 6]

条件を満たす要素のみを持つlistを得る

list内の偶数のみを取り出す場合.
list_sample_A = [4,2,8,5,3,6,1,0,7,9]
tmp =  [i for i in list_sample_A if i%2 == 0]
print(tmp)
>>[4, 2, 8, 6, 0]

全ての要素を四捨五入し,整数に変換する

各要素をround関数によって四捨五入しています.
list_sample_A = [8.6, 1.5, 2.6, 9.8, 5.4, 8.5, 7.4, 7.4, 9.0, 6.4]
tmp = [round(i) for i in list_sample_A]
print(tmp)
>>[9, 2, 3, 10, 5, 8, 7, 7, 9, 6]

リストに要素を追加する

末尾に要素を追加する

append関数によって末尾に要素を追加できます.
list_sample_A = [4,2,8,5,3]
list_sample_A.appned(20)
print(list_sample_A)
>>[4, 2, 8, 5, 3, 20]

他のlistを結合させる

extend関数によって末尾に他のlistを結合できます
list_sample_A = [4,2,8,5,3]
list_sample_A.extend([20,40,70])
print(list_sample_A)
>>[4, 2, 8, 5, 3, 20, 40, 70]
+= 演算子によっても末尾に他のlistを結合できます
list_sample_A = [4,2,8,5,3]
list_sample_A += [20,40,70]
print(list_sample_A)
>>[4, 2, 50, 8, 5, 3]

指定した位置に値を追加する

insert関数によって指定したインデックス位置に値を挿入します.
list_sample_A = [4,2,8,5,3]
list_sample_A.insert(2, 50)
print(list_sample_A)
>>[4, 2, 50, 8, 5, 3]

リストに要素を削除する

全ての要素を削除する

clear関数によってlistの全要素を削除します.
list_sample_A = [4,2,8,5,3]
list_sample_A.clear()
print(list_sample_A)
>>[]

任意の位置の要素を削除する

del関数によって指定したインデックス位置の要素を削除します.
list_sample_A = [4,2,8,5,3]
del list_sample_A[2]
print(list_sample_A)
>>[4, 2, 5, 3]

任意の範囲の要素を削除する

del関数とスライスによって指定した範囲の要素を削除します.
list_sample_A = [4,2,8,5,3]
del list_sample_A[1:3]
print(list_sample_A)
>>[4, 5, 3]

末尾の要素を取り除く

末尾の要素を獲得した後に取り除きます.スタックとしてlistを用いる際に便利.
list_sample_A = [4,2,8,5,3]
tmp = list_sample_A.pop()
print(tmp)
>>3
print(list_sample_A)
>>[4, 2, 8, 5]

特定の要素を取り出す

remove関数を用いることで一致する最初の要素を削除する
list_sample_A = [4,2,8,5,3]
list_sample_A.remove(5)
print(list_sample_A)
>>[4, 2, 8, 3]

リストの要素を調べる

昇順に並べ替える

sort関数を用いて並べ替える.sorted関数との違いに注意
list_sample = [8,2,9,4,0,6,3,1,7,5]
tmp = list_sample.sort()
print(tmp)
>>None
print(list_sample)
>>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

降順に並べ替える

sort関数でreverse=Trueとすると降順で並べ替える
list_sample = [8,2,9,4,0,6,3,1,7,5]
tmp = list_sample_A.sort(reverse=True)
print(tmp)
>>None
print(list_sample_A)
>>[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

sorted関数を用いて昇順に並べ替える

sort関数とは違い元list自体は並べ替えは行われないので注意
list_sample_A = [8,2,9,4,0,6,3,1,7,5]
tmp = sorted(list_sample_A)
print(tmp)
>>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list_sample_A)
>>[8, 2, 9, 4, 0, 6, 3, 1, 7, 5]

reversed関数を用いて昇順に並べ替える

reversed関数でも元list自体は並べ替えは行われない.また,返り値もイテレーターでsorted関数と仕様が違うので注意
list_sample_A = [8,2,9,4,0,6,3,1,7,5]
list_sample_A = [8, 2, 9, 4, 0, 6, 3, 1, 7, 5]
tmp = reversed(list_sample_A)
print(tmp)
>><list_reverseiterator object at 0x000002831B76F688>
tmp_rev = list(tmp)
print(tmp_rev)
>>[5, 7, 1, 3, 6, 0, 4, 9, 2, 8]
print(list_sample_A)
>>[8, 2, 9, 4, 0, 6, 3, 1, 7, 5]

最大値を取り出す

max関数を用いてlist内の最大値を得る.
list_sample_A = [95, 12, 64, 14, 61, 29, 39, 67, 58, 96]
max_value = max(list_sample_A)
print(max_value)
>>96

最小値を得る

min関数を用いてlist内の最小値を得る
list_sample_A = [95, 12, 64, 14, 61, 29, 39, 67, 58, 96]
min_value = min(list_sample_A)
print(min_value)
>>12

特定の値と一致する要素が存在するか調べる

"x in list"でlist内にxが存在するか調べる.
list_sample_A = [95, 12, 64, 14, 61, 29, 39, 67, 58, 96]
bool_61 = 61 in list_sample_A
print(bool_61)
>>True
bool_200 = 200 in list_sample_A
print(bool_200)
>>False

特定の値と一致する要素のインデックスを得る

"index(x)"でlist内で最初のxのインデックスを返す.
list_sample_A = [95, 12, 64, 14, 61, 29, 39, 67, 58, 96]
tmp = list_sample_A.index(64)
print(tmp)
>>2

forでlist内の要素を取り出す

forを使えば 先頭以外取り出す・2個ずつ取り出すなど,色々できる.詳しくはこちら
list_sample_A = [95, 12, 64, 14, 61, 29, 39, 67, 58, 96]
tmp = list_sample_A.index(64)
print(tmp)
>>2

0 件のコメント:

コメントを投稿