Pyparsing - 令牌的顺序不可预测

2023-11-25

我希望能够从一段文本中提取字母的类型和数量,其中字母可以按任何顺序排列。我正在进行其他一些解析,但这一点让我难住了!

input -> result
"abc" -> [['a',1], ['b',1],['c',1]]
"bbbc" -> [['b',3],['c',1]]
"cccaa" -> [['a',2],['c',3]]

我可以使用搜索或扫描并重复每个可能的字母,但是有没有一种干净的方法可以做到这一点?

据我所知,这是:

from pyparsing import *


def handleStuff(string, location, tokens):

        return [tokens[0][0], len(tokens[0])]


stype = Word("abc").setParseAction(handleStuff)
section =  ZeroOrMore(stype("stype"))


print section.parseString("abc").dump()
print section.parseString("aabcc").dump()
print section.parseString("bbaaa").dump()

从您的描述中我不清楚输入字符是否可以像“ababc”一样混合,因为在您的所有测试用例中,字母总是组合在一起。如果字母are总是组合在一起,您可以使用以下 pyparsing 代码:

def makeExpr(ch):
    expr = Word(ch).setParseAction(lambda tokens: [ch,len(tokens[0])])
    return expr

expr = Each([Optional(makeExpr(ch)) for ch in "abc"])

for t in tests:
    print t,expr.parseString(t).asList()

Each 结构负责无序匹配,Word(ch) 处理 1 到 n 的重复。解析操作负责将解析后的标记转换为(字符,计数)元组。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pyparsing - 令牌的顺序不可预测 的相关文章

  • 避免由于相对 URL 导致的错误请求

    我正在尝试使用Scrapy抓取一个网站 并且我想要抓取的每个页面的url都是使用这种相对路径编写的 a href en item to scrap html Link a 现在 在我的浏览器中 这些链接可以工作 您可以访问类似的网址http
  • 在Python3.6中调用C#代码

    由于完全不了解 C 编码 我希望在我的 python 代码中调用 C 函数 我知道有很多关于同一问题的问答 但由于一些奇怪的原因 我无法从示例 python 模块导入简单的 c 类库 以下是我所做的事情 C 类库设置 我使用的是 VS 20
  • 如何在Python中循环并存储自变量中的值

    我对 python 很陌生 所以这听起来可能很愚蠢 我进行了搜索 但没有找到解决方案 我在 python 中有一个名为 ExcRng 的函数 我可以对该函数执行什么样的 for 循环 以便将值存储在独立变量中 我不想将它们存储在列表中 而是
  • 一次将Python dict的内容分配给多个变量?

    我想做这样的事情 def f return a 1 b 2 c 3 a b f or a b f IE 这样 a 被分配为 1 b 被分配为 2 并且 c 是未定义的 这与此类似 def f return 1 2 a b f 依赖于变量名称
  • 优化 Keras 以使用所有可用的 CPU 资源

    好吧 我真的不知道我在说什么 所以请耐心听我说 我正在使用 Theano 后端运行 Keras 以在 MNIST 图像上运行基本的神经网络 目前只是一个教程 过去 我一直使用我的旧 HP 笔记本电脑 因为我有 Windows 和 Ubunt
  • 带图像的简单 GUI [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我试图在简单的 GUI 上显示一些卡
  • 错误:permission_manager_qt.cpp(82) 不支持的权限类型:13

    我正在开发具有内置浏览器功能的 python 代码 PyQt 5 13 import sys from PyQt5 QtCore import from PyQt5 QtGui import from PyQt5 QtWidgets imp
  • 如果字段值在外部列表中,Django 会注释布尔值

    想象一下我有这个 Django 模型 class Letter models Model name models CharField max length 1 unique True 还有这个列表 vowels a e i o u 我想查询
  • 定义函数后对其进行修饰?

    I think答案是否定的 但我似乎找不到明确的说法 我有以下情况 def decorated function function functools wraps function def my function print Hello s
  • “char”/“character”类型的类型提示

    char 或 character 没有内置的原始类型 因此显然必须使用长度为 1 的字符串 但是为了暗示这一点并暗示它应该被视为一个字符 如何通过类型提示来实现这一点 grade chr A 一种方法可能是使用内置的 chr 函数来表示这一
  • 如何在 Python 中将彩色输出打印到终端?

    是否有与 Perl 等效的 Python 语言 print color red print
  • matplotlib matshow 标签

    我一个月前开始使用 matplotlib 所以我仍在学习 我正在尝试用 matshow 制作热图 我的代码如下 data numpy array a reshape 4 4 cax ax matshow data interpolation
  • 获取列表中倒数第二个元素[重复]

    这个问题在这里已经有答案了 我可以通过以下方式获取列表的倒数第二个元素 gt gt gt lst a b c d e f gt gt gt print lst len lst 2 e 有没有比使用更好的方法print lst len lst
  • 为什么我用 beautifulSoup 刮的时候有桌子,但没有 pandas

    尝试抓取条目页面转换为制表符分隔格式 主要拉出序列和 UniProt 登录号 当我跑步时 url www signalpeptide de index php sess m listspdb bacteria s details id 10
  • 如何列出 python PDB 中的当前行?

    在 perl 调试器中 如果重复列出离开当前行的代码段 可以通过输入命令返回到当前行 点 我无法使用 python PDB 模块找到任何类似的东西 如果我list如果我自己离开当前行并想再次查看它 似乎我必须记住当前正在执行的行号 对我来说
  • 导入错误:没有名为 google.auth 的模块

    当我尝试导入时firebase admin in python 2 7我收到错误 导入错误 没有名为 google auth 的模块 这是Docker文件 https github com ammaratef45 Attendance bl
  • Scipy 稀疏 Cumsum

    假设我有一个scipy sparse csr matrix代表下面的值 0 0 1 2 0 3 0 4 1 0 0 2 0 3 4 0 我想就地计算非零值的累积和 这会将数组更改为 0 0 1 3 0 6 0 10 1 0 0 3 0 6
  • 检查字符串是否只有字母和空格 - Python

    试图让 python 返回一个字符串仅包含字母和空格 string input Enter a string if all x isalpha and x isspace for x in string print Only alphabe
  • TypeError:无法使用抽象方法实例化抽象类 <...>

    这是我的代码 from abc import ABC from abc import abstractmethod class Mamifiero ABC docstring for Mamifiero def init self self
  • Django South - 将 null=True 字段转换为 null=False 字段

    我的问题是 转变的最佳做法是什么null True场变成null False使用 Django South 的字段 具体来说 我正在与ForeignKey 你应该先写一个数据迁移 http south aeracode org docs t

随机推荐

  • 无法将不可变值作为 inout 参数传递:文字不可变,为什么?

    我想做一个函数来交换两个变量 但对于新的 swift 我不能使用 var import UIKit func swapF inout a Int inout with b Int print x a and y b a b b a prin
  • 如何在 Symfony 2 中通过伪造登录来测试 ACL 进行开发

    我正在开发基于 Symfony 2 的 Web 应用程序的一部分 与许多应用程序一样 需要身份验证和授权 我如何继续开发 通过传递或伪造登录来考虑 ACL 在文档中 login check身份验证和会话部分是否透明 我想我可能需要实现一个版
  • 用于调整窗口大小的自定义挂钩

    我正在创建一个自定义挂钩来捕获浏览器窗口大小 以便让我知道它是否是移动的 目前 我的问题是 React 告诉我它无法在 useEffect 挂钩中保留 screenSize 的变量值 我该如何解决这个问题 export default fu
  • 如何在 python 中进行 alpha 抠图

    如何在 python 中进行 alpha 抠图 更具体地说 如何提取图像的 alpha 通道 给定一个将像素标记为 100 前景 白色 100 背景 黑色 或未知 灰色 输入图像 输入三元图 使用库进行 alpha 抠图 这里有两个选项 都
  • WindowsFormsHost 是否适合用途(.net WPF 托管 WinForms)?

    GUI 驱动的应用程序需要托管一些基于 WinForms 的预构建组件 这些组件使用 GDI 和 DirectX 的组合提供高性能交互式视图 视图处理控制输入并显示自定义图形渲染 供应商在 WinForms 线束中对组件进行测试 商业应用程
  • 为什么返回 (h = key.hashCode()) ^ (h >>> 16) 而不是 key.hashcode ?

    我不认为这种方法可以避免碰撞 我认为如果key hashcode大于table length 就会发生冲突 更新 其实我指的是HashMap hash在 JDK 1 8 中 我对向下扩展高位的好处感到有点困惑 现在 我想在这个的帮助下我很清
  • 如何在本机反应中检测杀死应用程序中的应用程序?

    当应用程序被用户终止时 我想更改 API 的状态数据 我尝试过使用 componentWillUnmount 在应用程序关闭时更改数据 我还使用 AppState handleAppStateChange nextAppState gt i
  • 如何使用Jquery AJAX post传递多维数组?

    我一直在使用 Serialize 通过 Post 传递复选框表单数据 以获取可以容纳同一类别的多个项目的篮子 当我使用提交按钮发布它们时 它可以正常工作 可以在一个类别下传递和显示多个值 但是 当我使用 Jquery serialize 时
  • 错误:未找到:make

    我无法安装任何需要的软件包node gyp 错误消息是这样的 npm install node protobuf info trying registry request attempt 1 at 22 43 57 http GET htt
  • 如何转置 SQLite 中的表?

    你好 我在 SQlite 中有一个这样的表 User Group Role John Smith A admin John Smith B user Jane Doe A user Jane Doe B limit Jane Doe C a
  • WrapPanel:尝试使 ItemWidth 等于任何一个元素的最大宽度

    希望没有其他人问过这个问题 但我已经搜索过 但找不到任何提及 如果我错过了另一个解释这一点的问题 请随时为我指出正确的方向 我有一个带有数据绑定项的 WrapPanel 该项本质上包含一个图标和一些可变长度文本 这是图表的图例 我真的很喜欢
  • 打印可滚动的 Windows 窗体。 [复制]

    这个问题在这里已经有答案了 可能的重复 如何在 C 中截取 Winforms 控件 表单的屏幕截图 我有一个带有名称和图片列表的 Windows 窗体 该列表很长 因此有一个滚动面板 现在 我想打印此表单 但不能 因为打印功能仅打印 可见
  • 为什么在 ScrollViewer 内部单击时我的 TextBox 会获得焦点?

    在我的 Windows 应用商店应用程序中 我创建了一个 ScrollViewer 里面有一个网格 里面有一些文本框 每当用户单击 ScrollViewer 中的任意位置时 第一个 TextBox 就会获得焦点 我不知道为什么会发生这种情况
  • 使用 TensorFlow 对图像中的点进行插值采样

    给定的是灰度图像I作为 2D 张量 维度 W H 和坐标张量C 暗淡 无 2 我想解释的行C作为坐标I 样本I在这些坐标上使用某种插值 双线性可能适合我的用例 并将结果值存储在新的张量中P 维度为无 即一维 条目数量为C有行 使用 Tens
  • Python 字典的底层哈希数据结构

    我正在构建一个非常大的字典 并且正在执行许多检查以查看键是否在结构中 然后添加它是否唯一或如果相同则增加计数器 Python 使用一个哈希数据结构存储字典 不要与加密哈希函数混淆 查找的时间复杂度为 O 1 但如果哈希表已满 则必须重新哈希
  • 如何在 Angular js 智能表中编辑内容

    我对java脚本很陌生 所以如果这看起来很基础 我必须道歉 如何使用 Angularjs 编辑 Smart Table 中的行表 似乎没有关于新智能表的教程 我想创建一个简单的表单 供用户输入特定地点的开放时间 我创建了可以在表上添加和删除
  • 线程“main”中出现异常 java.lang.UnsatisfiedLinkError:java.library.path 中没有 lwjgl

    我正在构建基本的 Slick 游戏示例 解释如下 http slick cokeandcode com wiki doku php id 01 a basic slick game 我遇到了一些问题 具体来说 游戏编译得很好 但当我尝试运行
  • 获取从本机 dll 到 C# 应用程序的结构数组

    我有一个 C NET 2 0 CF 项目 需要在本机 C DLL 中调用方法 此本机方法返回类型的数组TableEntry 当调用本机方法时 我不知道数组有多大 如何将表从本机 DLL 获取到 C 项目 下面是我现在所拥有的 in C NE
  • 找到用死 Groovy 代码填充 PermGen 的代码

    We have had our glassfish instance go down every two weeks for a while with a java lang OutOfMemoryError PermGen space I
  • Pyparsing - 令牌的顺序不可预测

    我希望能够从一段文本中提取字母的类型和数量 其中字母可以按任何顺序排列 我正在进行其他一些解析 但这一点让我难住了 input gt result abc gt a 1 b 1 c 1 bbbc gt b 3 c 1 cccaa gt a