ValueError: list.remove(x): x 不在列表中 (Python)

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块。

valueerror 列表删除 x 不在列表中

下面是错误如何发生的示例。

主程序
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计算为 ,否则计算为TruexlFalse

如果您使用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块。