ValueError: list.remove(x): x 不在列表中 (Python)
ValueError: list.remove(x): x not in list (Python)
当我们
remove()
使用列表中不存在的值调用方法时,会出现 Python“ValueError: list.remove(x): x not in list”。要解决该错误,请在删除之前检查该值是否存在于列表中,或者使用
try/except
块。
下面是错误如何发生的示例。
my_list = ['apple', 'banana', 'kiwi'] # ⛔️ ValueError: list.remove(x): x not in list my_list.remove('melon')
我们将一个不在列表中的值传递给remove()
导致错误的方法。
解决错误的一种方法是在将值传递给remove()
方法之前检查该值是否存在于列表中。
my_list = ['apple', 'banana', 'kiwi'] if 'melon' in my_list: my_list.remove('melon') print(my_list) else: # 👇️ this runs print('value is not in the list')
in 运算符
测试成员资格。
例如,如果是 的成员,则x in l
计算为 ,否则计算为。True
x
l
False
如果您使用for
循环,请确保在需要删除任何项目时遍历列表的副本。
my_list = ['apple', 'banana', 'kiwi'] # ✅ iterate over copy for i in my_list.copy(): my_list.remove(i) print(my_list) # 👉️ []
我们copy()
在迭代时使用该方法创建列表的浅表副本。
list.remove()方法从列表中
删除第一项,其值等于传入的参数。
my_list = ['a', 'b', 'c'] my_list.remove('a') print(my_list) # 👉️ ['b', 'c']
ValueError
如果没有这样的项目,该方法将引发一个。
该remove()
方法改变原始列表并返回None
。
try/except
如果值不在列表中,您还可以使用语句来处理错误。
my_list = ['a', 'b', 'c'] try: my_list.remove('r') except ValueError: print('Item not in list') print(my_list) # 👉️ ['a', 'b', 'c']
我们调用remove()
列表中的方法,如果ValueError
引发 a,
except
则运行该块。
如果您有一个二维列表,请确保您remove()
在正确的列表上调用该方法。
my_list = [['a', 'b'], ['c', 'd']] my_list[0].remove('b') print(my_list) # 👉️ [['a'], ['c', 'd']]
我们访问了索引处的列表项0
并调用了remove()
它的方法。
如果我们调用remove()
外部列表上的方法,我们会得到 a
ValueError
因为它不包含 string "b"
。
结论
当我们
remove()
使用列表中不存在的值调用方法时,会出现 Python“ValueError: list.remove(x): x not in list”。要解决该错误,请在删除之前检查该值是否存在于列表中,或者使用
try/except
块。