SymPy和Python新手。在
我运行一个脚本,该脚本迭代多个测试文件。每个文件定义一组要使用的符号。在每次循环迭代结束时,我想删除前面使用symbols()
语句创建的所有符号,而不想再多删除了,因为我周围还有其他非符号变量在使用。在
我不能做del(x)
和del(y)
,因为每次迭代都会加载一组不同的符号。在
我可以在一个列表或元组中放置一个符号列表,然后在每次迭代结束时,检查所创建的符号列表,并使用del
一次删除一个,但我无法实现这一点。在
这里有一个例子。在
from sympy import *
x,y = symbols('x y')
symbolsToDelete = (x,y) #I also tried symbolsToDelete = ('x','y')
x=y**3
y=99
#now I want to delete all symbols defined above. But I can't
#use del(x) or del(y) explicitly. So I tried
for z0 in symbolsToDelete:
del(z0)
但是上面的方法不起作用,x
和{x=y**3
和{
同样,我知道我可以在结尾处执行del(x)
和{
我只能像上面那样将符号放在一个变量中,但不知道如何迭代这个元组,然后在每个条目上使用del()
在迭代结束时使用symbols
命令删除上面定义的相应符号。在
我不知道正确的语法应该是什么。在
我使用的是Python3.6.5。在
在Delete all objects in a list中解释了您的尝试没有成功的原因—当循环
[x, y]
时,您正在删除对对象的附加引用(在迭代过程中创建),而原始引用保持不变。在您可以删除},方法是通过^{} 访问它们,如下所示
x
和{相关问题 更多 >
编程相关推荐