3
7

More than 3 years have passed since last update.

【Python】リスト(配列)内要素の操作【追加・削除】

Last updated at Posted at 2020-02-09

はじめに

リストを扱う上で重要な追加と削除の方法をまとめました。
基本的に以下のようなコードでコードと出力結果を記載します。

ex.py
code = 'コード'
print(code)
# code(出力結果)

リスト(配列)に要素を追加するappend, extend, insert

Pythonでlist型のリスト(配列)に要素を追加したり別のリストを結合したりするには、リストのメソッドappend(), extend(), insert()を使う。そのほか、+演算子やスライスで位置を指定して代入する方法もある。

・末尾に要素を追加: append()
・末尾に別のリストやタプルを結合(連結): extend(), +演算子
・指定位置に要素を追加(挿入): insert()
・指定位置に別のリストやタプルを追加(挿入): スライスを使う

・append()・・・末尾(最後)に要素を追加できる。

append().py
l = [0, 1, 2]
print(l)
# [0, 1, 2]

l.append(100)
print(l)
# [0, 1, 2, 100]

l.append('new')
print(l)
# [0, 1, 2, 100, 'new']

l.append([3, 4, 5])
print(l)
# [0, 1, 2, 100, 'new', [3, 4, 5]]

・extend()・・・末尾(最後)に別のリストやタプルを結合できる。

extend().py
l = [0, 1, 2]

l.extend([100, 101, 102])
print(l)
# [0, 1, 2, 100, 101, 102]

l.extend((-1, -2, -3))
print(l)
# [0, 1, 2, 100, 101, 102, -1, -2, -3]

#append()と違って一文字ずつ格納される
l.extend('new')
print(l)
# [0, 1, 2, 100, 101, 102, -1, -2, -3, 'n', 'e', 'w']

#extend()メソッドではなく+=でも可。
l += [5, 6, 7]
print(l)
# [0, 1, 2, 100, 101, 102, -1, -2, -3, 'n', 'e', 'w', 5, 6, 7]

・insert()・・・指定した位置に要素を追加(挿入)できる。第一引数に位置、第二引数に挿入する要素を指定する。先頭(最初)は0。負の値の場合、-1が末尾(最後)の一つ前となる。

insert().py
l = [0, 1, 2]

l.insert(0, 100)
print(l)
# [100, 0, 1, 2]

l.insert(-1, 200)
print(l)
# [100, 0, 1, 200, 2]

l.insert(0, [-1, -2, -3])
print(l)
# [[-1, -2, -3], 100, 0, 1, 200, 2]

・スライスで範囲を指定して別のリストやタプルを代入すると、すべての要素が追加(挿入)される。

insert().py
l = [0, 1, 2]

l[1:1] = [100, 200, 300]
print(l)
# [0, 100, 200, 300, 1, 2]

l[1:2] = [100, 200, 300]
print(l)
# [0, 100, 200, 300, 2]

リスト(配列)の要素を削除するclear, pop, remove, del

Pythonでlist型のリスト(配列)の要素を削除するには、リストのメソッドclaer(), pop(), remove()を使う。そのほか、インデックスやスライスで位置・範囲を指定してdel文で削除する方法もある。

・すべての要素を削除: clear()
・指定した位置の要素を削除し、値を取得: pop()
・指定した値と同じ要素を検索し、最初の要素を削除: remove()
・インデックス・スライスで位置・範囲を指定して削除: del

・clear()・・・全ての要素を削除する

clear().py
l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

l.clear()
print(l)
# []

・pop()・・・リストのメソッドpop()で、指定した位置の要素を削除し、その要素の値を取得できる。

pop().py
l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print(l.pop(3))
# 4

print(l.pop(-2))
# 8

#引数を省略して位置を指定しない場合は、末尾(最後)の要素を削除する
print(l.pop())
# 9

・remove()・・・リストのメソッドremove()で、指定した値と同じ要素を検索し、最初の要素を削除できる。

remove().py
l = ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']

l.remove('Alice')
print(l)
# ['Bob', 'Charlie', 'Bob', 'Dave']

・del・・・削除したい要素をインデックスで指定する。先頭(最初)は0で、末尾(最後)は-1。

del.py
l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

del l[6]
print(l)
# [1, 2, 3, 4, 5, 6, 8]

del l[-1]
print(l)
# [1, 2, 3, 4, 5, 6, 7, 8]

#スライスで範囲を指定すると、複数の要素を一括で削除できる
del l[2:5]
print(l)
# [0, 1, 5, 6, 7, 8, 9]

最後に

他にも何か方法が解法があれば教えてもらえると嬉しいです。

3
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
7