ValueError: list.remove(x): X Not in List エラーを Python で修正

Rohan Timalsina 2023年6月21日
ValueError: list.remove(x): X Not in List エラーを Python で修正

Python はリストを使用して、複数の項目を 1つの変数に格納します。 リスト内の項目は、0 から始まるインデックス番号で順序付けられて格納されます。

値は重複する可能性があり、変更可能です。 リスト内のアイテムを追加、変更、および削除できます。

remove() メソッドは、指定された項目をリストから削除します。 アイテムを削除しているときに、list.remove(x): x not in list というエラーが表示されることがあります。

remove() メソッドで指定した項目がリストにありません。 このチュートリアルでは、Python でリストから項目を削除する正しい方法を説明します。

Python の ValueError: list.remove(x): x not in list エラーを修正

remove() メソッドは引数を 1つだけ取ります。 一度に 1つの引数を削除できます。

remove メソッドは、リスト内の最初の項目を削除します。 これは、アイテムのインスタンスが複数ある場合にのみ、アイテムの最初のインスタンスが削除されることを意味します。

次の例では、リスト mylist を作成します。

mylist = ["science", "maths", "computer", "english"]

print() メソッドを使用して、リスト内の項目を表示できます。

print(mylist)

出力:

['science', 'maths', 'computer', 'english']

次のコマンドを使用して、computermylist から削除できます。

mylist.remove("computer")

次に、一覧で項目を確認します。

print(mylist)

出力:

['science', 'maths', 'english']

ご覧のとおり、computer 要素がリストから正常に削除されました。

ここで、リストから computer を削除しようとすると、computer 要素がリストにないため、ValueError: list.remove(x): x not in list が発生します。

mylist.remove("computer")

出力:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list

if...in を使用して、削除する前に項目がリストに存在するかどうかを確認する

if...in キーワードを使用して、アイテムがリストに存在するかどうかを確認できます。

if "computer" in mylist:
    mylist.remove("computer")
else:
    print("computer is not in the list.")
print(mylist)

上記の例では、最初に computer がリストにあるかどうかをチェックします。 存在する場合、remove() メソッドはリストからアイテムを削除し、最後のコマンドは更新されたリストを出力します。

else ステートメントが実行され、リストに存在しない場合はリストが出力されます。

出力:

computer is not in the list.
['science', 'maths', 'english']

出力で例外 ValueError を取得したくない場合に役立ちます。

複数のリスト アイテムを 1つずつ削除する

Python のリストから複数の項目を削除するには、2つの方法を使用できます。 このエラーは、2つ以上のアイテムまたは文字列が一度に削除された場合にも発生することがあります。

remove() メソッドは 1つの引数しかとらないため、Python では一度に 1つのアイテムを削除する必要があります。 以下は、リスト内の 2つの項目を 1つずつ削除する例です。

mylist = ["science", "maths", "computer", "english"]
mylist.remove("maths")
mylist.remove("english")
print(mylist)

出力:

['science', 'computer']

for ループを使用して複数のリスト項目を削除する

もう 1つの方法は、Python リスト内の複数の項目を削除するために for ループを使用することです。 次の例では、単一の remove コマンドと for ループを使用して、リストから複数の項目を削除します。

mylist = ["science", "maths", "computer", "english"]
for item in ["maths", "english"]:
    mylist.remove(item)
print(mylist)

出力:

['science', 'computer']

これで、リスト内のアイテムを削除するさまざまな方法がわかりました。

指定した項目がリストにない場合、ValueError: list.remove(x): x not in list が発生します。 問題の原因と Python での対処方法を理解していただければ幸いです。

著者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

関連記事 - Python List

関連記事 - Python Error