我有一些方程式的字符串,其中包括变量。例如:
eq='(a+1)*c-d'
我还有一个包含变量值的字典。例如:
val={'a':5,'c':'k','d':'300n'}
正如您所看到的,在相同情况下变量的值可以是其他变量,并且在某些情况下并非 eq 中的所有变量都在 val 中。
我需要用 val 中的值替换 eq 中的所有变量。 当然,直接的代码将类似于:
for v in val.keys():
eq=re.sub(v,val[v],eq)
但是这段代码在某些情况下会失败。例如,变量列表中将包含变量“n”和“nn”
那么,有人可以想出更好的解决方案吗? 谢谢。
最佳答案
尝试:
for k,v in val.items():
eq = re.sub(r'\b' + k + r'\b', v, eq)
这将按变量的全名搜索变量,即如果 val = {'x': '5'}
并且方程包含“xx”、“x2”等子字符串,甚至“2x”,这些字符串不会被替换。
关于python - 如何在Python中替换方程中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12762638/