今天给大家分享一个简单好用的炸鸡法宝——pampy。我敢以我的荣幸保证,使用后,你写代码的效率是可以提高的!Pampy是第一个普及模式匹配的神。模式匹配是给定一个特定的模式,利用这个模式来检查一个序列或字符串是否符合这个模式,这种技术常用于自然语言处理中。Pampy是一个Python的模式匹配类库,一个只有150行的类库。这个库优雅高效,值得广大Python码友加入自己的基础开发栈。巧合的是,该程序还有一个同名的Pampy.js库的JavaScript版本。有兴趣的可以阅读源码,复制到更多的开发语言中。安装这个库的方式也很普通:pipinstallpampyPampy的花式匹配单个字符我们可以使用_来匹配单个字符:frompampyimport_,matcha=['a',1,'b',2,'c',3,'d',4]patter=['a',1,'b',_,'c',3,'d',4]action=lambdax:f'bis:{x}'print(match(a,patter,action))运行的结果是:bis:2从上面的例子可以看出,其实我们只是把_作为占位符。匹配时,找到这个占位符对应的元素。匹配字典我们可以匹配多级字典中任意一级的key或value:frompampyimport_,matchperson={'address':{'province':'Hubei','city':'Wuhan','district':'东湖高科'},'name':'先环'}patter={_:{_:'武汉'}}action=lambdak1,k2:({'k1':k1,'k2':k2})print(match(person,patter,action))结果是:{'k1':'address','k2':'city'}和前面的例子类似,这里用了占位符_,然后在动作中定位占位符输出结果。匹配开头和结尾在上面的例子中,我们使用占位符来放置地方,但是占位符只能匹配一个字符。在下面的示例中,我们将使用HEAD和TAIL这两个关键字来匹配开头和结尾。他们可以批评任意数量的字符:frompampyimport_,match,HEAD,TAILa=['a',1,'b',2,'c',3,'d',4]patter=[HEAD,_,'b',2,'c',3,TAIL]action=lambdah,m,t:({'head':h,'middle':m,'tail':t})print(匹配(a,patter,action))运行上面的例子,结果是:{'head':'a','middle':1,'tail':['d',4]}我们从结果中可以看出HEAD匹配当指定一个字符时,TAIL匹配两个字符。输出的时候,如果有多个字符,结果会以数组的形式给出。总结Pampy的例子很简单,大家一看就知道。看了几个例子,是不是有一种感觉:哇,竟然还有这样的神器!当然,Pampy的模式匹配并不局限于这几种方法,还有更多的方法可以去探索。以上就是本次分享的全部内容。觉得文章还不错的话,请关注公众号:Python编程学习圈,每日干货分享,发送“J”还能领取大量学习资料。或者去编程学习网了解更多编程技术知识。
