2022/05/24

Python list まとめ 【追加・削除・結合編】

 

追加

リストにデータを追加します.データ型はなんでもいいのが便利だ.


末尾にデータを追加する

末尾に要素を追加する場合はappend関数
list_sample = [2, 9, 3, 7, 4, 1, 0, 6, 8, 5]
list_sample.append('a')
print(list_sample)
>>[2, 9, 3, 7, 4, 1, 0, 6, 8, 5, 'a']

list_sample = [2, 9, 3, 7, 4, 1, 0, 6, 8, 5]
list_sample.append([2, 3, 4])
print(list_sample)
>>[2, 9, 3, 7, 4, 1, 0, 6, 8, 5, [2, 3, 4]]


指定した場所にデータを追加する

末尾に要素を追加する場合はinsert関数.insert(i, x)だと,インデックスiを持つ要素の直前にデータxを挿入します.
ただ,insertだとappendより計算量が多い
list_sample = [2, 9, 3, 7, 4, 1, 0, 6, 8, 5]
list_sample.insert(3, 'a')
print(list_sample)
>>[2, 9, 3, 'a', 7, 4, 1, 0, 6, 8, 5]


削除


末尾の要素を削除

pop関数でインデックスを指定しない場合は末尾の要素が削除される.削除されたデータを返り値として返します.
list_sample = [2, 9, 3, 7, 4, 1, 0, 6, 8, 5]
tmp = list_sample.pop()
print(list_sample)
>>[2, 9, 3, 7, 4, 1, 0, 6, 8]

print(tmp)
>>5


指定した場所の要素を削除

del関数を使用して削除
list_sample = [2, 9, 3, 7, 4, 1, 0, 6, 8, 5]
del list_sample[3]
print(list_sample)
>>[2, 9, 3, 4, 1, 0, 6, 8, 5]

pop関数を使用した別実装
list_sample = [2, 9, 3, 7, 4, 1, 0, 6, 8, 5]
list_sample.pop(3)
print(list_sample)
>>[2, 9, 3, 4, 1, 0, 6, 8, 5]

指定した範囲の複数データを削除する

スライスを使用すれば指定された範囲のデータを削除できます.
list_sample = [2, 9, 3, 7, 4, 1, 0, 6, 8, 5]
del list_sample[2:5]
print(list_sample)
>>[2, 9, 1, 0, 6, 8, 5]


指定したデータと一致する要素を削除する

remove関数は指定したデータと一致する最初の要素を削除します.一致するデータがない場合はエラーを吐きます.
list_sample = [4,3,8,5,3,6,1,3,3,9,8,3,6,3]
list_sample.remove(3)
print(list_sample)
>>[4, 8, 5, 3, 6, 1, 3, 3, 9, 8, 3, 6, 3]

list_sample.remove(99)
>>list.remove(x): x not in list


指定したデータと一致する全ての要素を削除する場合.
list_sample = [4,3,8,5,3,6,1,3,3,9,8,3,6,3]
tmp = [buf for buf in list_sample if buf != 3]
print(tmp)
>>[4, 8, 5, 6, 1, 9, 8, 6]


全てのデータを削除する

clearを使用することで全てのデータを削除できます.
list_sample = [2, 9, 3, 7, 4, 1, 0, 6, 8, 5]
list_sample.clear()
print(list_sample)
>>[]


結合


2つのリストを結合する

リストを結合する場合はextend関数
list_sample_A = [2, 9, 3, 7, 4, 1, 0, 6, 8, 5]
list_sample_B = ['a', 'b', 'c']
list_sample_A.extend(list_sample_B)
print(list_sample_A)
>>[2, 9, 3, 7, 4, 1, 0, 6, 8, 5, 'a', 'b', 'c']

+演算子を使った別実装
list_sample_A = [2, 9, 3, 7, 4, 1, 0, 6, 8, 5]
list_sample_B = ['a', 'b', 'c']
list_sample_C = list_sample_A + list_sample_B
print(list_sample_C)
>>[2, 9, 3, 7, 4, 1, 0, 6, 8, 5, 'a', 'b', 'c']


応用編


上手く組み合わせれば1,1,2,1,2,3,1,2,3,4,1,2 ...みたいなリストも生成できる
list_sample = []
for i in range(1, 8):
    list_sample += range(1, i+1)
print(list_sample)
>>[1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 7]

0 件のコメント:

コメントを投稿