re.split([+ -],f)或更好地迈向偏导数

2024-06-26 10:22:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在一些基本的事情上绕圈子。我的想法是:我想写一个简单的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”和 作为进行 重新拆分('[+-]',f), 那我就把它分了,但仅此而已 “---------------”下面的部分或多或少是伪代码。你知道吗

这可能是最愚蠢的问题张贴在这里。你知道吗


Tags: 工具importredef情况事情技术导数
1条回答
网友
1楼 · 发布于 2024-06-26 10:22:51

re.split()只接受string类型,这样就不能向它传递列表。在您的模式中,您还需要一个额外的空间r'[+-]'

>>> s="2x + 3y"
>>> s1="2x + 3y"
>>> s2="2x - 3y"
>>> re.split(r'[+-]',s1)
['2x ', ' 3y']
>>> re.split(r'[+-]',s2)
['2x ', ' 3y']

还可以使用str.strip从拆分的元素中删除空格:

>>> [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']

相关问题 更多 >