リストの要素を削除する

リストの要素を削除する

リストの要素を削除する方法

 list オブジェクトの特定要素を選んで削除する場合は、del 文または pop(), remove(), clear() などのメソッドを使います。

del

 リストから特定の要素を削除する場合、del 構文 は最も柔軟な手段となります。
 del の後に続く要素指定はリストのスライスに基づく記法です。
 たとえば、1つの要素を選んで削除したいときは [] に整数を渡します。

# DEL-1

# 芥川竜之介の作品リスト
akutagawa = ["羅生門", "蜘蛛の糸", "芋粥", "トロッコ", "杜子春"]

# 4番目(インデックス3)の要素を削除
del akutagawa[3]

# 変更されたリストを表示
print(akutagawa)
['羅生門', '蜘蛛の糸', '芋粥', '杜子春']

 del list[a:b] はインデックス a ~ b の範囲の要素をまとめて削除します。

# DEL-2

# 芥川竜之介の作品リスト
akutagawa = ["羅生門", "蜘蛛の糸", "芋粥", "トロッコ", "杜子春"]

# 2~4番目(インデックス1~4)の要素を削除
del akutagawa[1:4]

# 変更されたリストを表示
print(akutagawa)
['羅生門', '杜子春']

 del list[:] はリストの要素をすべて削除します。

# DEL-3

# 芥川竜之介の作品リスト
akutagawa = ["羅生門", "蜘蛛の糸", "芋粥", "トロッコ", "杜子春"]

# すべての要素を削除
del akutagawa[:]

# 変更されたリストを表示
print(akutagawa)
[]

 

list.pop()

 list.pop() はリストから要素を1つ削除して、削除した要素を返すメソッドです。
 引数を省略するとリストの末尾の要素を削除します。

# POP-1

# 川端康成の作品リスト
kawabata = ["雪国", "古都", "伊豆の踊り子", "山の音", "たんぽぽ"]

# リストの末尾の要素を削除
print(kawabata.pop())

# 変更されたリストを表示
print(kawabata)
たんぽぽ
['雪国', '古都', '伊豆の踊り子', '山の音']

 list.pop() に整数を渡すと、対応するインデックスの要素を返します。

# POP-2

# 川端康成の作品リスト
kawabata = ["雪国", "古都", "伊豆の踊り子", "山の音", "たんぽぽ"]

# 3番目(インデックス2)の要素を削除
print(kawabata.pop(2))

# 変更されたリストを表示
print(kawabata)
伊豆の踊り子
['雪国', '古都', '山の音', 'たんぽぽ']

 

list.remove()

 list.remove(x) は x に等しい最初の要素を削除します。

# REMOVE-1

# 夏目漱石の作品リスト
soseki = ["三四郎", "こころ", "坊ちゃん", "道草", "夢十夜"]

# "道草"を削除
soseki.remove("道草")

# 変更されたリストを表示
print(soseki)
['三四郎', 'こころ', '坊ちゃん', '夢十夜']

 x に該当する要素がリストになければ、ValuError が発生します。

# REMOVE-2

# 夏目漱石の作品リスト
soseki = ["三四郎", "こころ", "坊ちゃん", "道草", "夢十夜"]

# "倫敦塔"を削除
soseki.remove("倫敦塔")
ValueError: list.remove(x): x not in list

 

list.clear()

 list.clear() はリストの全要素を削除します。

# CLEAR

# 宮沢賢治の作品リスト
kenji = ["注文の多い料理店", "銀河鉄道の夜", "セロ弾きのゴーシュ"]

# リストの要素を全て削除
kenji.clear()

# 変更されたリストを表示
print(kenji)
[]

 戻り値は空白のリスト [] となっています。