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']
次のコマンドを使用して、computer
を mylist
から削除できます。
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 での対処方法を理解していただければ幸いです。
関連記事 - Python List
- Python でリストから要素の出現をすべて削除する
- Python で辞書をリストに変換する
- Python でリストから重複を削除する
- Python でリストの平均を取得する方法
- リストメソッドの追加と拡張の違いは何ですか
- Python でリストを文字列に変換する方法
関連記事 - Python Error
- AttributeError の解決: 'list' オブジェクト属性 'append' は読み取り専用です
- AttributeError の解決: Python で 'Nonetype' オブジェクトに属性 'Group' がありません
- AttributeError: 'generator' オブジェクトに Python の 'next' 属性がありません
- AttributeError: 'numpy.ndarray' オブジェクトに Python の 'Append' 属性がありません
- AttributeError: Int オブジェクトに属性がありません
- AttributeError: Python で 'Dict' オブジェクトに属性 'Append' がありません