python里生成动态变量和如何使用动态变量

本文介绍如何在Python中使用Sympy库动态生成符号变量,解决变长参数值问题。通过locals()函数和for循环,可根据传入的参数值动态创建Sympy参数,并进行赋值操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做一个小的程序,想用sympy处理传入的字符串公式和一串变长的参数值,生成一系列的值。

在给公式赋值时,碰到了一个问题,sympy需要先定义好符号的变量。而符号的变量在写作函数时是不清楚的,如下图:

x, y = symbols('x y')
expr = (x + y)*2*y+y**2

x和y均为符号变量,是由变长参数值确定的。有可能别的计算式需要传入5个符号变量,那我就要列x,y,z,m,n了。如何动态生成变量呢。经过查找,发现可以使用locals函数。废话不多说:

tmp_local = locals()
	
#根据传入的参数值生成参sympy的参数
for key in paramers.keys():
	tmp_local[key] = symbols(key)

这里tmp_local是一个局部变量的字典,这样一来就可以实现动态的设置变量了。

那如何使用这个动态生成的变量呢?如何给这个动态变量赋值呢?上面也提到了,tmp_local是一个字典,我们可以直接通过键来进行访问和赋值操作。如下:

tmp_local['y'] = 'z676'
print(tmp_local['y'])

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值