Python 超级强大的模式匹配工具—Pampy

Python怎么实现模式匹配 总的来说,模式匹配在文本处理、数据挖掘、编译器和语言处理、图像处理、生物信息学、自然语言处理、网络安全等领域都有广泛的应用。使用适当的模式匹配方法能够提高代码的可读性、可维护性,并加速处理复杂任务。 阅读详情

在自然语言处理界,「模式匹配」可以说是最常用的技术;甚至可以说,将 NLP 技术作为真实生产力的项目都少不了模式匹配

什么是模式匹配呢?

在计算机科学中,往往是检查给定的序列或字符串中是否有符合某种模式的片段,比如说:“啊,你的 AK-47 打得真准”,如果我们将 “啊,你的_打得真准 ” 作为一种模式,则会将 AK-47 匹配出来

实现模式匹配往往都是用正则表达式,但是如果你想识别特别复杂的模式,编写正则表达式就会变得非常非常麻烦

而 Pampy 这个项目能解决你不少的烦恼

项目地址:

https://github.com/santinic/pampy

下面是一个使用例子:

1. 安装

赶紧让我们来试一下,安装 Pampy 前,你要确保 Python 和 pip 已经成功安装在电脑上噢

使用命令安装 Pampy

$ pip install pampy

看到 Successfully installed pampy-0.3.0 则说明安装成功

2. 使用

特性1:HEAD 和 TAIL

HEAD 和 TAIL 能代表某个模式的前面部分或后面部分。

比如:将特定模式后的元素都变成元组:

from pampy import match, HEAD, TAIL, _
x = [-1, -2, -3, 0, 1, 2, 3]
print(match(x, [-1, TAIL], lambda t: [-1, tuple(t)]))
# => [-1, (-2, -3, 0, 1, 2, 3)]

将特定模式前的元素设为集合,后面的元素设为元组:

from pampy import match, HEAD, TAIL, _

x = [-1, -2, -3, 0, 1, 2, 3]

print(match(x, [HEAD, _, _, 0, TAIL], lambda h, a, b, t: (set([h, a, b]), tuple(t))))

# => ({-3, -1, -2}, (1, 2, 3))

特性2:甚至能匹配字典中的键

在你不知道哪个键下有某个值的时候,这招非常好用:

from pampy import match, HEAD, TAIL, _

my_dict = {
    'global_setting': [1, 3, 3],
    'user_setting': {
        'face': ['beautiful', 'ugly'],
        'mind': ['smart', 'stupid']
    }
}

result = match(my_dict, { _: {'face': _}}, lambda key, son_value: (key, son_value))

print(result)

# => ('user_setting', ['beautiful', 'ugly'])

特性3: 搭配正则

不仅如此,它还能搭配正则一起使用哦:

import re

from pampy import match, HEAD, TAIL, _

def what_is(pet):
    return match(
        pet, re.compile('(\w+),(\w)\w+鳕鱼$'), lambda mygod, you: you + "像鳕鱼"
    )

print(what_is('我的天,你长得真像鳕鱼'))
# => '你像鳕鱼'

好了,以上就是今天的文章。如果对你有帮助,麻烦在下面点一个赞/在看,有任何问题都可以在下方留言,我会耐心解答的!

推荐阅读:
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |
趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影

年度爆款文案

点这里,直达菜鸟学PythonB站!!
Python-SandDance数据可视化探索理解和展示工具 SandDance:数据可视化探索、理解和展示工具 立即下载

相关推荐

CloudCompare里那个CSF地面滤波插件,到底怎么用?手把手教你分离点云里的地面

本文详细介绍了如何在CloudCompare中使用CSF地面滤波插件分离点云中的地面数据。通过解析布料模拟滤波算法的核心参数,如布料刚度和网格分辨率,并提供不同地形(城市、丘陵、山地)的适配策略,帮助用户高效处理复杂点云数据。文章还包含实战案例和优化技巧,确保滤波结果的精度和可靠性。

weixin_42548708的博客 221

开源项目:SandDance-数据可视化

网页:https://sanddance.js.org/app/ GitHub:https://github.com/microsoft/SandDance SandDance Visually explore, understand, and present your data. By using easy-to-understand views, SandDance helps y...

RToax 1972

麒麟V10等保三级配置实战:从auditd规则到PAM锁定的可信基线构建

Linux安全基线是信息系统可信运行的基础能力,其核心在于身份鉴别、访问控制与安全审计三大机制的协同落地。在国产化信创环境中,麒麟V10作为深度适配飞腾/鲲鹏平台的操作系统,其等保三级合规并非简单套用CentOS加固脚本,而是需围绕内核审计(auditd)、可插拔认证模块(PAM)及国产安全增强机制(如kysec)进行精细化编排。技术价值体现在将抽象条款(如GB/T 22239-2019中6.1.2、6.3.3条)转化为可验证的命令行操作,确保登录失败可锁定、关键行为可追溯、时间偏差不致日志失效。典型应用场

weixin_29969209的博客 599

Excel核对助手——高效数据对比工具

看看我实际操作的对比结果:在【是否匹配】一栏中,如果打上了✅,就表示这两个表格中对应的数据完全一致;今天先给大家介绍一款超实用的Excel数据对比工具——Excel核对助手。这款软件是绿色单文件版,小巧便携,无需安装,使用起来非常方便。使用时,我们需要分别选择两个需要对比的Excel表格。勾选好对比列后,点击【开始对比】按钮,软件就会自动对比两个表格中已勾选的数据。如果你也有类似的Excel数据对比需求,这款Excel核对助手绝对值得一试!选择完成后,可以勾选需要对比的列,支持多项对比。

qingyang2020的博客 3525

【论文精读】DisCo: Graph-Based Disentangled Contrastive Learning for Cold-Start Cross-Domain Recommendat

源域中具有相似偏好的用户在目标域中可能会表现出不同的兴趣。因此,直接迁移嵌入可能会引入不相关的源域协同信息。提出了一个基于图的解耦对比学习框架,以捕捉细粒度的用户意图并过滤掉不相关的协同信息,从而避免负迁移。 具体而言,对于每个域,我们使用多通道图编码器来捕捉多样化的用户意图。然后,我们在嵌入空间中构建亲和图,并执行多步随机游走以捕捉高阶用户相似性关系。将一个域视为目标域,我们提出了一种以用户相似性为指导的解耦意图对比学习方法,以优化跨域的用户意图桥接。

qq_52342142的博客 1229

Centos7 XFS(dm-0):Internal error XFS_WANT_CORRUPTED_GOTO

在k8s的道路上我们都是小白,每天启动虚机都会遇到各种各样的问题,这不。部署的k8s虚机启动发现操作系统启动异常,提示如下报错信息。进入/dev/mapper目录下,查询目录下路径信息。可以通过对文件系统进行修复操作,操作如下。重启完成后虚机恢复正常登录。

hedao0515的专栏 4583

颜值即正义!这几个库颠覆你对数据交互的想象

前言 作为一个对UI和动画敏感的切图仔,在日常开发之余,也会关注一些贼好看的图表库和插件。 接下来,我将给大家介绍几款web/python/vue/react里漂亮得不行的几个开源库/实现。 1. 手绘风图表库:roughViz.js 基于D3(v5), roughjs, 和handy。 1.1 衡量方式 有三种衡量方式: 粗糙度: 线条种类: 线条粗细: 1.2 多种搭配 简答CDN:...

前端劝退师 6379

ArcGis布局视图中Excel表格无边框插入与图例符号边框定制技巧

本文详细解析了在ArcGis布局视图中实现Excel表格无边框插入与图例符号边框定制的专业技巧。通过源头净化Excel表格、精准粘贴以及分解图例并单独设置边框属性,有效解决了地图报告中常见的视觉粗糙问题,帮助用户提升专题图与报告的精致度与专业感。

weixin_29292535的博客 306

Python 中的结构模式匹配

截至 2021 年初,我们无法在低于或等于 3.9 的已发布 Python 版本中使用 match 关键字。那时,我们习惯于使用字典或嵌套的 if/elif/else 语句来模拟。但是,Python 3.10 引入了一个新特性,称为结构模式匹配(语句)。它相当于我们在 Java、C++ 和许多其他编程语言中使用的语句。这一新功能使我们能够编写简单、易于阅读且最不容易出错的流程控制语句。

迹忆客 932

华为OD机试 - 压缩日志查询(Python/JS/C/C++ 双机位C卷 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。某设备需要记录每分钟检测到的指标值。为了节约存储空间,将连续相同指标值的记录合并。压缩之前:202411231000,11 202411231001,11 202411231002,12 202411231003,12 202411231004,

学Java,找哪吒 1880

微信H5网页支付JSAPI部分用户报错:system:access_denied 的解决方案

JSAPI 支付仅支持微信内置浏览器调用。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1687

python中的tail()_Python 强大的模式匹配工具—Pampy

在自然语言处理界,模式匹配可以说是最常用的技术。甚至可以说,将NLP技术作为真实生产力的项目都少不了模式匹配。什么是模式匹配呢?在计算机科学中,往往是检查给定的序列或字符串中是否有符合某种模式的片段。比如说:“啊,你的AK-47打得真准”,如果我们将 “啊,你的_____打得真准 ” 作为一种模式,则会将AK-47匹配出来。实现模式匹配往往都是用正则表达式,但是如果你想识别特别复杂的模式,编写正则...

weixin_39815600的博客 2945

海格通信嵌入式面试题及参考答案

计算电路的最高工作频率如何计算? 计算电路的最高工作频率主要考虑电路中的关键路径延迟。关键路径是指在整个电路中,信号传播延迟最长的路径。电路的最高工作频率的倒数就是时钟周期,而时钟周期必须大于关键路径的延迟时间。 首先要确定电路中各个模块的延迟。比如对于组合逻辑电路,可以通过查看芯片手册获取门电路的延迟参数。以一个简单的与门、或门、非门组成的组合逻辑为例,每个门都有自己的传输延迟,把信号从输入到输出经过的所有门的延迟相加,就得到这部分组合逻辑的延迟。 对于包含寄存器的电路,还需要考虑寄

大模型大数据攻城狮的专栏 1273

Python 强大的模式匹配工具—Pampy

在自然语言处理界,模式匹配可以说是最常用的技术。甚至可以说,将NLP技术作为真实生产力的项目都少不了模式匹配。 什么是模式匹配呢?在计算机科学中,往往是检查给定的序列或字符串中是否有符合某种模式的片段。比如说:“啊,你的AK-47打得真准”,如果我们将 “啊,你的**_____**打得真准 ” 作为一种模式,则会将AK-47匹配出来。 实现模式匹配往往都是用正则表达式,但是如果你想识别特别复杂的模式,编写正则表达式就会变得非常非常麻烦。而Pampy这个项目能解决你不少的烦恼。 1.安装 赶紧让我们来试一下

Python实用宝典网 423

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

python匹配方式_Python 强大的模式匹配工具—Pampy

在自然语言处理界,模式匹配可以说是最常用的技术。甚至可以说,将NLP技术作为真实生产力的项目都少不了模式匹配。什么是模式匹配呢?在计算机科学中,往往是检查给定的序列或字符串中是否有符合某种模式的片段。比如说:“啊,你的AK-47打得真准”,如果我们将 “啊,你的_____打得真准 ” 作为一种模式,则会将AK-47匹配出来。实现模式匹配往往都是用正则表达式,但是如果你想识别特别复杂的模式,编写正则...

weixin_39606048的博客 293

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

强大的模式匹配工具—Pampy

什么是模式匹配呢? 在计算机科学中,往往是检查给定的序列或字符串中是否有符合某种模式的片段,比如说:“啊,你的AK-47打得真准”,如果我们将 “啊,你的_打得真准 ” 作为一种模式,则会将 AK-47 匹配出来 实现模式匹配往往都是用正则表达式,但是如果你想识别特别复杂的模式,编写正则表达式就会变得非常非常麻烦 而 Pampy 这个项目能解决你不少的烦恼 项目地址: https://github.com/santinic/pampy 下面是一个使用例子: 1. 安装 赶紧让我们来试..

KHOST的博客 515

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

解析Python中的模式匹配库:Pampy

Pampy是一个在Python中实现模式匹配的强大库,通过简洁的语法和丰富的功能,为开发者提供了一种优雅而高效的处理数据和控制流的方式。通过本文的详细介绍和实例代码,可以清晰地了解Pampy的基础和高级模式匹配、函数作为结果等特性,以及其在实际应用中的灵活性。Pampy的基础用法简单易懂,使得处理各种匹配情况变得轻松而直观。高级模式匹配、模式嵌套和类型匹配等功能则进一步提高了Pampy的表达力,使其适用于更为复杂的编程场景。同时,Pampy。

涛哥聊Python 283

模式匹配 匹配空格_Python 强大的模式匹配工具—Pampy

在自然语言处理界,模式匹配可以说是最常用的技术。甚至可以说,将NLP技术作为真实生产力的项目都少不了模式匹配。什么是模式匹配呢?在计算机科学中,往往是检查给定的序列或字符串中是否有符合某种模式的片段。比如说:“啊,你的AK-47打得真准”,如果我们将 “啊,你的_____打得真准 ” 作为一种模式,则会将AK-47匹配出来。实现模式匹配往往都是用正则表达式,但是如果你想识别特别复杂的模式,编写正则...

weixin_36158843的博客 204

如何用Pampy在5分钟内掌握Python模式匹配

Pampy是一款轻量级Python模式匹配库,仅150行代码却能让你以简洁优雅的方式处理复杂数据结构。无论是列表、字典还是自定义类,Pampy都能帮助你快速实现模式匹配,让代码更具可读性和维护性。 ## 快速安装Pampy的简单步骤 要开始使用Pampy,只需通过pip命令即可完成安装: ``` pip install pampy ``` 如果你使用Python3,也可以使用pip3命令:

gitblog_00075的博客 439

Python模式匹配革命:Pampy库的终极入门指南

Pampy是一款为Python开发者设计的模式匹配库,它让复杂数据结构的匹配和处理变得前所未有的简单直观。无论是处理列表、字典还是自定义对象,Pampy都能帮助你用简洁优雅的代码实现强大的模式匹配逻辑,彻底改变你处理数据的方式。 ## 为什么选择Pampy进行Python模式匹配? 在Python编程中,我们经常需要处理各种复杂的数据结构。传统的if-else语句或switch-case结构不

gitblog_00069的博客 401

Python 强大的模式匹配工具

↑↑↑关注后"星标"简说Python人人都可以简单入门Python、爬虫、数据分析简说Python推荐 来源|Python实用宝典作者|Ckend 在自然语言处理界,模...

简说Python的博客 364
上一篇: 哇塞!清华竟然开了《摸鱼》课程!1000多学子在线摸鱼,开课老师为大一新生...
下一篇: 用 Python 分分钟让旧照片修复清晰
菜鸟学Python
博客等级 码龄9年 8086粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值