re.split('[+ -]',f) 或更好地步进到偏导数
re.split('[+ -]',f) or better stepping to partial derivatives
我一直在 运行圈子里讨论一些基本的东西。我的想法如下:我想写一个简单的 def 来做偏导数。我知道那里已经有工具了,但我碰巧是一个自负的人,可能拥有过时的 python 技能。事不宜迟,情况就是这样。
先说策略:
我想将 2x + 3y 之类的东西拆分成 [2x , 3y];然后对 2x 进行操作,从而对 [0] 和 3y, [1] 进行我尚未编写的导数运算。我打算象征性地这样做。我决定在不尝试一些肮脏的尝试的情况下,不要过多地研究其他人是如何做到这一点的。
这是我的非工作实现
def partialderivative(f, a):
import re
L = list(f)
re.split('[+ -]', L)
derivative (L[0],x)
derivative (L[0],y)
derivative (L[1],x)
derivative (L[1],y)
打印(部分结果)
现在有很多事情我不完全理解。如果我 运行 上面的第一部分通过命令行仔细确保 f --> 'f' 和
作为
re.split('[+ -]',f) ,
然后我会把它分开,但仅此而已
“----------------”下面的部分或多或少是伪代码。
这可能是这里发布的最愚蠢的问题。 . .
re.split()
只接受字符串类型,因此您无法将列表传递给它。同样在你的模式中你有一个额外的 space r'[+-]'
:
>>> s="2x + 3y"
>>> s1="2x + 3y"
>>> s2="2x - 3y"
>>> re.split(r'[+-]',s1)
['2x ', ' 3y']
>>> re.split(r'[+-]',s2)
['2x ', ' 3y']
您还可以使用 str.strip
从拆分元素中删除 spaces :
>>> [i.strip() for i in re.split(r'[+-]',s2)]
['2x', '3y']
在一个函数中:
>>> def spliter(s):
... return [i.strip() for i in re.split(r'[+-]',s)]
...
>>> spliter(s1)
['2x', '3y']
>>> s3="4x + 12z - 18k"
>>> spliter(s3)
['4x', '12z', '18k']
我一直在 运行圈子里讨论一些基本的东西。我的想法如下:我想写一个简单的 def 来做偏导数。我知道那里已经有工具了,但我碰巧是一个自负的人,可能拥有过时的 python 技能。事不宜迟,情况就是这样。 先说策略: 我想将 2x + 3y 之类的东西拆分成 [2x , 3y];然后对 2x 进行操作,从而对 [0] 和 3y, [1] 进行我尚未编写的导数运算。我打算象征性地这样做。我决定在不尝试一些肮脏的尝试的情况下,不要过多地研究其他人是如何做到这一点的。 这是我的非工作实现
def partialderivative(f, a):
import re
L = list(f)
re.split('[+ -]', L)
derivative (L[0],x)
derivative (L[0],y)
derivative (L[1],x)
derivative (L[1],y)
打印(部分结果)
现在有很多事情我不完全理解。如果我 运行 上面的第一部分通过命令行仔细确保 f --> 'f' 和 作为 re.split('[+ -]',f) , 然后我会把它分开,但仅此而已 “----------------”下面的部分或多或少是伪代码。
这可能是这里发布的最愚蠢的问题。 . .
re.split()
只接受字符串类型,因此您无法将列表传递给它。同样在你的模式中你有一个额外的 space r'[+-]'
:
>>> s="2x + 3y"
>>> s1="2x + 3y"
>>> s2="2x - 3y"
>>> re.split(r'[+-]',s1)
['2x ', ' 3y']
>>> re.split(r'[+-]',s2)
['2x ', ' 3y']
您还可以使用 str.strip
从拆分元素中删除 spaces :
>>> [i.strip() for i in re.split(r'[+-]',s2)]
['2x', '3y']
在一个函数中:
>>> def spliter(s):
... return [i.strip() for i in re.split(r'[+-]',s)]
...
>>> spliter(s1)
['2x', '3y']
>>> s3="4x + 12z - 18k"
>>> spliter(s3)
['4x', '12z', '18k']