从字符串中解析多项式系数

2023-12-15

我正在尝试构建一个正则表达式来解析字符串中多项式的系数。我以为我已经找到了解决方案,直到我发现一个特定的示例,我怀疑该示例格式错误,破坏了我的正则表达式。我也不确定我的解决方案是最优雅的。

以下是我需要解析的字符串的一些示例:

polys = ['1x',
         '3.8546E-27x^4-2.4333E-20x^3+5.1165E-14x^2+3.7718E-6x-6.1561E-1',
         '6.13159E-3x+0.348',
         '0.0100708x-40',
         '6.103516E-3x',
         '1E-6x',
         '1.4846859E-6x',
         '2435',
         '2.7883E-27x^4-2.2164E-20x^3+5.8443E-14x^2+7.5773E-6x-1.3147E+']

我尝试的模式和匹配:

pattern = r'([\+\-]?\d+\.?\d+[Ee]?[\+\-]?\d*)[x\^\d+]?|([\+\-]?\d+\.?\d*[Ee]?[\+\-]?\d*)x'

for poly in polys:
    coeffs = []
    for match in re.finditer(pattern, poly):
        groups = match.groups()
        coeff = groups[0] if groups[0] is not None else groups[1]
        coeffs.append(float(coeff))
    print(coeffs)

这似乎适用于列表中除最后一个多边形之外的所有多边形,它仅在转换为浮点时失败。如果我将预期的 0 添加到其末尾,则结果如下,这就是我正在寻找的结果。

[1.0]
[3.8546e-27, -2.4333e-20, 5.1165e-14, 3.7718e-06, -0.61561]
[0.00613159, 0.348]
[0.0100708, -40.0]
[0.006103516]
[1e-06]
[1.4846859e-06]
[2435.0]
[2.7883e-27, -2.2164e-20, 5.8443e-14, 7.5773e-06, -1.3147]

我可能会假设最后一项格式错误,要么忽略要么处理它,但我忍不住认为有一个更好/更整洁的解决方案。


错误来自最后一个数字的最后一行-1.3147E+。这不是正确的表示法,后面的索引E不见了。

一种解决方案可能是在应用步骤之前将其替换为:

poly = re.sub(r"(E\+)$", '', poly)

代码变为:

pattern = r'([\+\-]?\d+\.?\d+[Ee]?[\+\-]?\d*)[x\^\d+]?|([\+\-]?\d+\.?\d*[Ee]?[\+\-]?\d*)x'

for poly in polys:
    poly = re.sub(r"(E\+)$", '', poly)
    coeffs = []
    for match in re.finditer(pattern, poly):
        groups = match.groups()
        coeff = groups[0] if groups[0] is not None else groups[1]
        coeffs.append(float(coeff))
    print(coeffs)

# [1.0]
# [3.8546e-27, -2.4333e-20, 5.1165e-14, 3.7718e-06, -0.61561]
# [0.00613159, 0.348]
# [0.0100708, -40.0]
# [0.006103516]
# [1e-06]
# [1.4846859e-06]
# [2435.0]
# [2.7883e-27, -2.2164e-20, 5.8443e-14, 7.5773e-06, -1.3147]

这是另一种方法split:

out = []
for poly in polys:
    poly = re.sub(r"(E\+)$", '', poly)
    list_coef = re.split(r'x[\^\d]*', poly)
    list_coef = [float(elt) for elt in list_coef if elt]
    out.append(list_coef)

[print(o) for o in out]
# [1.0]
# [3.8546e-27, -2.4333e-20, 5.1165e-14, 3.7718e-06, -0.61561]
# [0.00613159, 0.348]
# [0.0100708, -40.0]
# [0.006103516]
# [1e-06]
# [1.4846859e-06]
# [2435.0]
# [2.7883e-27, -2.2164e-20, 5.8443e-14, 7.5773e-06, -1.3147]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从字符串中解析多项式系数 的相关文章

  • 如何测试使用 XCom 的 Apache Airflow 任务

    我正在尝试找出一种测试 DAG 的方法 其中有几个任务使用 XCom 进行通信 由于控制台命令只允许我从 DAG 运行任务 有没有一种方法可以测试通信而无需通过 UI 运行 DAG Thanks 这是一种对我有用的方法 尽管 Airflow
  • 如何使用 django (python) 和 s3 上传文件?

    我正在寻找一种将文件上传到 s3 的方法 我正在使用 django 我目前正在使用亚马逊的 python 库进行上传以及以下代码 View def submitpicture request fuser request session lo
  • 如何移动我的图像? python 3.10.4 pygame

    我会移动我的图像 图像是matiskinfinal png 我尝试将像素添加到 x 或其他我不知道它是什么的东西 因为我真的是 python 的初学者 pygame但是是 x x 变化 但图像没有移动 import os import py
  • Python sqlite3参数化删除表

    我在 python 中删除 sqlite3 表时遇到问题 我正在使用标准sqlite3模块 self conn sqlite3 connect sql drop table self conn execute sql u table nam
  • Spyder 导入模块出错

    我正在尝试在 Spyder 中使用 sklearn 一开始 当我尝试导入它时 我收到 ImportError No module named sklearn 然后我用 PYTHONPATH 管理器设置 PATH 然后使用工具菜单中的 更新模
  • 使用 Pymongo 从 Windows 连接到 AWS 实例上的 MongoDB

    此行反复抛出错误 client MongoClient ec2 12 345 67 89 us east 2 compute amazonaws com 27017 ssl True ssl keyfile C mongo pem 由于显而
  • Seaborn 热图中的自定义调色板间隔

    我正在尝试绘制一个heatmap https seaborn pydata org generated seaborn heatmap html使用seaborn库 绘图函数如下所示 def plot confusion matrix da
  • 了解 asyncio 已经运行的永久循环和挂起的任务

    我在理解如何将新任务挂起到已经运行的事件循环中时遇到问题 这段代码 import asyncio import logging asyncio coroutine def blocking cmd while True logging in
  • ( 后的正则表达式匹配数

    我正在尝试使用正则表达式来匹配开括号 字符后的可变长度的数字 我努力了 d 但该正则表达式在匹配中包含括号 我该如何排除它 我正在使用 Sublime Text 正则表达式引擎来进行匹配 您可以使用积极的后视 http www regula
  • 如何绘制多类分类器的精度和召回率?

    我正在使用 scikit learn 我想绘制精度和召回曲线 我正在使用的分类器是RandomForestClassifier scikit learn 文档中的所有资源都使用二元分类 另外 我可以绘制多类的 ROC 曲线吗 另外 我只找到
  • 如何在数据框中绘制包含三列的无向图,形成 3 种不同类型的节点(三方)?

    我正在尝试使用三个不同的列表绘制网络的可视化 这三个列表形成 3 种类型的节点 下面的代码正在运行 如图所示 需要两个列表 用户 ID 评分 但是 我希望我的图表是三部分的 即 user userId review ratings prod
  • 检查多个 pd.DataFrame 是否相等

    是否有一种 Pythonic 方式 无循环或递归 来检查是否超过两个pd DataFrames 例如 pd DataFrames 列表 彼此相等吗 就像是 all x equals dfs 0 for x in dfs with dfs数据
  • 如何加速 pandas 字符串函数?

    我正在使用 pandas 矢量化 str split 方法来提取从 上的拆分 返回的第一个元素 我还尝试使用 df apply 与 lambda 和 str split 来产生等效的结果 使用 timeit 时 我发现 df apply 的
  • Python 队列 get()/task_done() 问题

    我的消费者端队列 m queue get queue task done
  • 删除 .htaccess 中 URL 中各处的多组斜杠

    我目前有一个网站 访客可以访问每个网址 并使用任意数量的斜杠来分隔文件夹名称 例如 如果 URL 应该是 http example com one two three four 然后用户可以通过以下任意方式访问同一页面 http examp
  • Pip 突然使用了错误版本的 Python

    在 os x 上使用 pip 时遇到一个奇怪的问题 据我所知 快速查看我的 bash history 似乎可以确认 我最近没有对我的配置进行任何更改 唉 pip 命令似乎突然使用了与以前不同的 python 版本 到目前为止 我使用命令 p
  • 使正则表达式以惰性方式匹配,同时跳过一些单词

    我想要正则表达式 其中包括跳过一些单词以惰性方式匹配 例如 正则表达式 all s S 0 10 s Damages amount s S 0 10 s in s excess s of 示例文本 第 8 1 a 条规定的所有此类损害超出免
  • 在Python中从CSV文件中获取随机行并找到相应的单词,就像测验一样

    抱歉标题含糊不清 想不出更好的表达方式 我有一个包含德语 英语单词的 CSV 文件 如下所示 Ja Yes Nein No Katze Cat 我希望我的 python 脚本从 CSV 文件中打印一个随机的德语单词 并要求他们输入英语单词
  • 使用正则表达式匹配阿拉伯文文本

    我试图使用正则表达式仅匹配阿拉伯语文本 但出现异常 这是我的代码 txt matches P Arabic 这是例外情况 线程 main 中的异常 java util regex PatternSyntaxException 索引 9 附近
  • django admin 中内联模型的分页器

    我有这个简单的 django 模型 由一个传感器和特定传感器的值组成 每个日射强度计的值数量很多 gt 30k 是否可以以某种方式分页PyranometerValues在特定日期或一般情况下将分页器应用于管理内联视图 class Pyran

随机推荐

  • 如何在 Swift 3 中转置数组长度不等的矩阵

    我的数组是 Int 类型 array 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 我希望转置结果为 array 1 4 7 11 14 2 5 8 12 15 3 6 9 13 16 0 0 10 0 0
  • X-Frame-Options 标头在防止恶意框架方面有多有用?

    添加X Frame Options DENY响应标头有助于防止网页的恶意框架 作为一种解决方案 它肯定比客户端 JavaScript 解决方案更好 但它到底有多有用呢 所有 现代 浏览器都支持它 意图劫持您网站的黑客是否可以绕过它 埃里克
  • 更改网址而不刷新?

    我在互联网上发现了一个应用程序 当您单击其中的 A 链接时 它将重定向到 A 页面 而无需刷新整个位置并更改 url 地址栏 我知道这可能是因为 JQuery 可以访问客户端浏览器 Please帮我解决这个问题 使用历史API你可以做这样的
  • IE 浏览器中的 CSS 媒体查询支持

    请帮助我如何使用 IE 浏览器的媒体查询 我遇到过一个 jquery 库 http plugins jquery com project MediaQueries但我无法下载这个库 我建议不要使用 javascript 来模拟媒体查询 设置
  • 如何使用 django 将进程置于后台?

    我尝试了 os system os spwanl 等 但效果不佳 我需要从 django 应用程序执行一些后台进程 尝试使用celery 它最初就是为此目的而创建的 并且还支持调度任务
  • JS:导出 Array.prototype

    如果我想向 JavaScript 添加原型Array 有没有办法导出它 以便我可以将所有原型方法放入一个文件中 例如modules prototypes js 可不可能是export Array 或者我会在设置原型之前添加导出吗 如果你的代
  • iOS - 本地通知 - 自定义振动或振动时间更长

    我正在尝试构建一个像闹钟一样工作的 iPhone 应用程序 我正在使用 UILocalNotification Problem 我希望手机振动时间更长一些 但目前它仅振动一次 替代方法 是否可以使用自定义振动模式 http www pcwo
  • 在 bash 中将带有分号 (';') 的值赋给变量

    我试图用 sed 在 unix shell bash 上的字符串中转义 分号 当我直接执行而不将值分配给变量时它会起作用 那是 echo hello sed s 1 g hello 但是 当将上述命令分配给变量时 它似乎不起作用 resul
  • 将插入符号/光标位置设置为字符串值 WPF 文本框的末尾

    我尝试将插入符 光标位置设置为end当我第一次打开窗口时 WPF 文本框中的字符串值 当窗口打开时 我使用 FocusManager 将焦点设置在文本框上 似乎没什么作用 有任何想法吗 请注意 我使用的是 MVVM 模式 并且我的代码中仅包
  • Struts2 中的 NoSuchMethodException

    我有出生日期的文本字段 当用户输入无效日期 例如字符串 时 错误消息成功显示为 fielderror 但在我的控制台中 我收到此错误 java lang NoSuchMethodException Profile setBirthDate
  • jquery ajax 单击时调用,仅有效一次

    我有这个简单的 jquery 代码 单击时 它会获取标签的 URL 加载当前内容旁边的页面 滑动它并删除旧内容 页面的状态与以前完全相同 相同的元素没有额外的类或样式 问题是下一个 ajax 调用不起作用 也许我需要 unbind 一些东西
  • 反应点击处理程序并绑定它

    我有一个反应组件 我在其中迭代列表并创建行 每行都有一个删除按钮 单击删除按钮时 我想传递对该行中元素的引用 var TagTable React createClass onTagDelete function tagName this
  • 将空白节点添加到 Jena 模型

    我正在尝试使用一组现有的三元组填充耶拿本体模型 其中一些包含空白节点 我想忠实地维护这个新模型中的这些空白节点 但我无法找到将它们添加到耶拿模型中的方法 我一直在使用 Statement s ResourceFactory createSt
  • 多个 UIAlertView 问题

    我的代码有问题 我有两个 UIAlertView 代码块 一个带有取消和确定按钮 另一个用于制作 ImagePicker IBAction publicaPeticion if txtPeticion hasText UIAlertView
  • 为什么我在C#中无法设置这个ACL规则?

    我的 C 应用程序在 Vista SP1 上以提升的管理员身份运行 尝试使用以下代码设置以下规则 不会产生任何错误 但目录的 ACL 也不会发生任何更改 我缺少什么 public static void Main string args s
  • Websphere:不强制执行 web.xml 中的安全约束

    我正在尝试在我支持的非常旧的 J2EE 应用程序上启用 SSL 该应用程序在 WebSpehre 6 1 中运行 我已在运行应用程序的 WAS 配置文件中启用应用程序安全性 但下面的 web xml 配置仍然允许用户使用 HTTP 或 HT
  • 如何读取用户写的内容(无需按 Enter 键) - 控制台 C#

    好吧 问题的标题可能有点不对劲 但我没有想到更好的 所以这里是 我想阅读用户输入的 到目前为止 的内容 我需要它像这样工作 用户输入一些所需的数据 然后询问他 她是否想要完整的进度输出或只是结果 当然 我可以调用 ReadLine 并查看他
  • PHP。是否可以将 array_column 与对象数组一起使用

    是否可以通过array column对象数组 我已经实现了ArrayAccess接口 但没有效果 我应该实施另一个吗 class Foo implements ArrayAccess public Id Title public funct
  • 如何为apache+wsgi网站设置LD_LIBRARY_PATH

    我正在尝试在基于 wsgi apache Flask 的网站中使用 python 库 在独立命令脚本中使用该库时 我必须将库路径添加到 LD LIBRARY PATH 所以这适用于独立脚本 export LD LIBRARY PATH us
  • 从字符串中解析多项式系数

    我正在尝试构建一个正则表达式来解析字符串中多项式的系数 我以为我已经找到了解决方案 直到我发现一个特定的示例 我怀疑该示例格式错误 破坏了我的正则表达式 我也不确定我的解决方案是最优雅的 以下是我需要解析的字符串的一些示例 polys 1x