有人可以帮我解决这个问题吗?我已经做了很多调试和故障排除,但碰壁了。我不会复制整个脚本,而是复制失败的函数:
def deleteOperation(lname1, sKeys, lname2):
delMaster = copy.deepcopy(lname2)
for k, v in lname1:
if k not in sKeys:
delMaster.remove((k, v))
return delMaster
以下是参数列表中的值:
lname1 = [(1, 'one'), (3, 'three'), (5, 'five'), (7, 'seven')]
sKeys = [1, 2, 3]
lname2 = [(1, 'one'), (3, 'third'), (5, 'five'), (7, 'seven')]
这个函数应该从列表中删除元素(5,'five')
,(7,'seven')
但是当我执行它时,我得到了错误:
ValueError: list.remove(x): x not in list
实际上,我通过使用 pyodbc 并连接到 MS SQL 数据库并读取两个表并将这些值包含在 lname1 和 lname2 中获得的所有值。
有趣的是,如果我使用交互式 Python shell 并完全按照我在上面打印的方式手动分配值并运行与我的函数完全相同的命令,它可以正常工作而不会出错。任何线索为什么它发生在我的脚本中?感谢任何输入。
PS 如果我在第 4 行设置断点,我会看到所有正确的值,但它看起来在 list.remove() 内部失败了