这个Python神器,能让你摸半天鱼!

今天给大家分享一个炒鸡炒鸡简单又好用的神器——pampy。

我敢以我的荣誉保证,用了它之后,你写代码的效率可以蹭蹭蹭地提升!

Pampy 是哪路神仙

首先普及一下模式匹配。

模式匹配即给定某种模式,用这种模式去检查序列或字符串是否符合这种模式,这种技术在自然语言处理中经常使用。

Pampy 是 Python 的一个模式匹配类库,一个只有150行的类库,该库优雅、高效值得广大Python的码农加入自己基本开发栈中。

无独有偶,该程序还有一个同名的 Pampy.js 的 JavaScript 版本库。

你如果有兴趣,可以阅读源码,将其照搬到更多的开发语言中。

安装这个库的方式也是老生常谈了:

pip install pampy

Pampy 的花式秀

匹配单个字符

我们可以用 _ 来匹配单个字符:

from pampy import _,matcha=['a',1,'b',2,'c',3,'d',4]patter = ['a',1,'b',_,'c',3,'d',4]action=lambda x: f'b is: {x}'print(match(a,patter,action))

运行结果是:

b is: 2

从上面例子可以看出,实际上我们只是用 _ 充当一个占位符,当匹配的时候,找到这个占位符对应的元素即可。

匹配字典

我们可以匹配多层级的字典中的任意一个层级的 key 或者 value:

from pampy import _, matchperson = {'address': {'province': '湖北', 'city': '武汉', 'district': '东湖高新'},'name': '闲欢'
}
patter = {_: {_: '武汉'}}
action = lambda k1, k2: ({'k1': k1, 'k2': k2})
print(match(person, patter, action))

运行结果是:

{‘k1’: ‘address’, ‘k2’: ‘city’}

跟前一个例子类似,这里使用 _ 这个占位符占位,然后在 action 里面定位占位符,即可输出结果。

匹配开头和结尾

上面的例子,我们都是使用占位符来占位,但是占位符只能匹配一个字符,下面的例子,我们将用 HEADTAIL 这两个关键词来匹配开头和结尾,他们可以批评任意多个字符:

from pampy import _,match,HEAD,TAILa=['a',1,'b',2,'c',3,'d',4]
patter = [HEAD,_,'b',2,'c',3,TAIL]
action=lambda h,m,t: ({'head':h,'middle':m,'tail':t})
print(match(a,patter,action))

运行上面例子,结果是:

{‘head’: ‘a’, ‘middle’: 1, ‘tail’: [‘d’, 4]}

我们可以从结果看到,HEAD 匹配了一个字符,TAIL 匹配了两个字符,输出的时候,如果是多个字符,结果会以数组的方式给出。

总结

Pampy 的例子都很简单,大家一阅便知。通过看着几个例子,是不是有种感觉:哇,还有这等神器!

当然,Pampy 的模式匹配不止这么几种方式,还有更多方式有待大家去探索。

关于Python学习指南

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取保证100%免费

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/817637.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端页面显示时间与数据库时间差8小时

环境 jdk11mysql 8.0docker部署的 问题 突然发现页面上的数据比数据库的时间差了八个小时,然后我就开始排查问题。 首先看数据库的信息,发现时间都是没错的。 然后看一下ymal文件,是否是数据源链接写的有问题。 spring:datasource:url:…

NzN的数据结构--外排序

接上文,本篇向大家简单展示一下外排序的实现。先三连后看才是好习惯!!! 在我们刚接触数据结构的时间里,我们只需要对外排序简单了解一下即可,重点要掌握的还是前面我们介绍的比较排序和非比较排序里的计数排…

蓝色系UX/UI设计求职面试作品集模版figmasketchPPT可编辑源文件

页面数量: 20P 页面尺寸:1920*1080PX 交付格式:figma、sketch、PPT 赠送文件:24款高质量样机(PSD格式) 该作品集虽然只有20页,但可根据需求复制作品集里已有的页面作为模版来扩展您的设计项目 该作品集模版可编辑可修…

【Qt 学习笔记】QWidget的styleSheet属性 | RGB | 在线调色板

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ QWidget的styleSheet属性 文章编号:Qt 学习笔记 / 20 文章…

都2024年了,还不知道怎么学习网络安全?来看看吧,很难找全的

前言 最近收到不少关注朋友的私信和留言,大多数都是零基础小友入门网络安全,需要相关资源学习。其实看过的铁粉都知道,之前的文里是有过推荐过的。新来的小友可能不太清楚,这里就系统地叙述一遍。 01.简单了解一下网络安全 说白…

Linux中断(栈、上下部)

进程线程中断的核心:栈 进程切换时,需要将当前进程的寄存器参数保存在当前进程的栈中。要再次执行此进程时需要先从栈中恢复此进程的寄存器参数。 对于同个进程的不同线程,代码和数据是所有线程共享的,所以线程间可以通过全局变量…

企业级网络安全:入侵防御实时阻止,守护您的业务安全

随着互联网技术的快速发展,企业级网络安全问题日益凸显。在这个数字化时代,企业的业务安全不仅关系到企业的形象和声誉,还直接影响到企业的生存和发展。因此,加强企业级网络安全,预防和抵御各种网络攻击已成为企业的重…

【EM算法】算法及注解

EM算法又称期望极大算法,是一种迭代算法,每次迭代由两步组成:E步,求期望(expectation);M步,求极大(maximization)。 算法背景 如果概率模型的变量都是观测变…

利用计算机视觉算法提取裂纹相关特征参数信息

ABCnutter/CrackFeature: 🚀使用计算机视觉相关算法提取裂缝的骨架(矢量化)、轮廓【支持提前修复断裂裂缝】,以及几何特征参数(长度、宽度、面积和主要方向)【欢迎Star】。主要流程以及相关算法如下&#x…

zato,一个神奇的 Python 库!

大家好,今天为大家分享一个神奇的 Python 库 - zato。 Zato是一个高性能的Python企业服务总线(ESB)和应用集成框架,专为简化复杂系统间的通信和数据交换而设计。它提供了一个灵活、可扩展的平台,以支持各种集成需求,从简单的数据传…

Android Studio 之 Intent及其参数传递

一、Intent 显式Intent:通过组件名指定启动的目标组件,比如startActivity(new Intent(A.this,B.class)); 每次启动的组件只有一个~隐式Intent:不指定组件名,而指定Intent的Action,Data,或Category,当我们启动组件时, 会去匹配AndroidManifest.xml相关组件的Intent-…

代码随想录——动态规划

系列文章目录 代码随想录——回溯 代码随想录——贪心算法 代码随想录——动态规划 文章目录 系列文章目录概述简单斐波那契数***爬楼梯***使用最小花费爬楼梯不同路径不同路径 II***整数拆分***不同的二叉搜索树***普通0-1背包***分割等和子集***最后一块石头的重量 II***目标…

内网渗透-内网环境下的横向移动总结

内网环境下的横向移动总结 文章目录 内网环境下的横向移动总结前言横向移动威胁 威胁密码安全 威胁主机安全 威胁信息安全横向移动威胁的特点 利用psexec 利用psexec.exe工具msf中的psexec 利用windows服务 sc命令 1.与靶机建立ipc连接2.拷贝exe到主机系统上3.在靶机上创建一个…

ros-param添加参数控制rviz显示掉帧问题

在ros中有一套参数系统可以直接写到launch文件中,这样非常方便,不需要编译就能直接用,这对于c来说非常的有好,这里记录一下如何使用。 主要步骤如下: 首先初始化节点 使用nodehandle进行管理,然后通过param…

企业常用Linux文件命令相关知识+小案例

远程连接工具无法连接VMWARE: 如果发现连接工具有时连不上,ip存在,这时候我们查看网络编辑器,更多配置,看vnet8是不是10段,nat设置是否是正确的? 软件重启一下虚机还原一下网络编辑器 查看文件…

Windows版PHP7.4.9解压直用(免安装-绿色-项目打包直接使用)

安装版和解压版 区别 安装版: 安装方便,下一步------下一步就OK了,但重装系统更换环境又要重新来一遍,会特别麻烦解压版(推荐): 这种方式(项目打包特别方便)能更深了解mysql的配置&…

LOF 简介

1. 背景 在LOF之前的异常检测算法大多是基于统计方法的,或是借用了一些聚类算法用于异常点的识别(如DBSCAN, OPTICS)。但这些方法都有一些不完美的地方: 1. 基于统计的方法:通常需要假设数据服从特定的概率分布,这个假设往往是不成…

electron项目打包慢、打包报错

项目使用了electron框架,在第一次打包或者网络条件不好的环境下进行打包时熟速度慢的出奇,甚至经常出现打包失败的情况(如上面图片的报错)。 这是因为,在electron打包的过程中,需要去官方源https://github.…

第十五届蓝桥杯c++b组赛后复盘和真题展示

题目变成八道了,分数一百分可能,感觉拿奖难度还是很高 第一题是一个简单的握手问题 答案算出来1204,纯手写 第二题是 物理题 纯蒙,随便猜了个轨迹,答案具体忘了,最后是 .45 第三题暴力 第四题 我是傻逼…

指针的深入理解(七)

指针的深入理解(七) 个人主页:大白的编程日记 个人专栏:C语言学习之路 感谢遇见,我们一起学习进步! 文章目录 指针的深入理解(七)前言一.常量字符串指针1.1常量字符串的理解1.2常量…