有人能帮我解决这个问题吗?我已经做了大量的调试和故障排除,但遇到了困难。我不会复制整个脚本,而是复制失败的函数:
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
以下是参数列表中的值:
^{pr2}$此函数应该从列表中删除元素(5,'five')
和(7,'seven')
,但当我执行它时,出现了一个错误:
ValueError: list.remove(x): x not in list
实际上,我得到的所有值都是通过使用pyodbc连接到mssql数据库,读取两个表并将这些值保存在lname1和lname2中。在
有趣的是,如果我使用交互式pythonshell,并像上面打印的那样手动分配值,并运行与我的函数完全相同的命令,那么它可以正常工作。 你知道为什么会出现在我的剧本里吗? 感谢您的任何意见。在
另外,如果我在第4行放一个断点,我会看到所有正确的值,但它看起来是内部的列表.删除()失败了
帮你自己一个忙,用列表理解。那么您就不必担心Python3中的
filter
不返回list
。这同样适用于Python2或Python3这里有一个更简单的程序:
创建一个新数组,该数组只包含来自
lname1
且在sKeys
中有第一个元素的项。在为了更好地诊断,可以像这样处理异常
复制列表然后从中删除是一种不寻常的方法。通常,将你想要的数据复制到一个新的数据结构中会更加高效和安全。你这样做有什么特别的原因吗?在
相关问题 更多 >
编程相关推荐