动态模式匹配库

py-matching-pattern的Python项目详细描述


Python模式匹配

pampy和{a2}的启发,这是一个模式动态列表的模式匹配库。在

现在它只支持大小相同的匹配列表。在

使用

导入lib

importPatternMatchStorefrompy_matching_pattern

首先,您将添加initialize一个PatternMatchStore,它有一个固定大小的键来匹配(列表的大小)。在

^{pr2}$

之后,您可以添加模式。每个值都是有效匹配,包括None。在

“catch all”值是实例的default属性。在

_=pmdb.defaultpmdb.put(keys=["a","b","c"],value=1)pmdb.put(keys=["a","b","b"],value=2)pmdb.put(keys=["a","b",_],value=3)pmdb.put(keys=["a",_,_],value=4)pmdb.put(keys=["a",None,"c"],value=5)pmdb.put(keys=["a",_,"d"],value=6)

这些模式是为数据库准备的。如果从另一个线程重新加载模式,这很有用。在

为了使模式有效,您需要提交它。在

pmdb.commit()

现在您终于可以开始匹配值了:

pmdb.get(keys=["a","b","c"])==1pmdb.get(keys=["a","b","b"])==2pmdb.get(keys=["a","b","d"])==3pmdb.get(keys=["a","c","d"])==4pmdb.get(keys=["a",None,"c"])==5pmdb.get(keys=["a","e","d"])==6pmdb.get(keys=["e","e","e"])==None

分段模式在提交之间保留,因此您可以稍后添加或重写它。在

但如果你想清理它:

pmdb.clean()

如果找不到异常,它也会引发异常,但默认情况下,它将返回None

pmdb=core.PatternMatchStore(keysize=3,raise_on_notfound=True)pmdb.get(keys=["e","e","e"])# raise KeyNotFound

许可证

麻省理工学院

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何修改打印板?   java Spring批处理JdbcCursorItemReader还是RepositoryItemReader?   java如何在JTable Swing中增加标题列的字体?   java在数组方面遇到问题,导致表达式非法启动   java如何为maven pom的某些部分关闭Eclipse代码格式化程序。xml   java Dropwizard登录代码   java Jersey 2.22:客户端的默认连接超时是多少?   java无法自动连接字段:javax。sql。数据来源   如何从java中的行列表中获取单词列表?   java JDBC批量更新和处理异常?   计算大根:bigdecimal/java   java如何在JavaCC语法中提到trycatch块   javasocket。getInetAddress()不返回任何内容   oracle SQL开发人员错误无法找到Java虚拟机   java我如何计算和显示未来5年每一年的投资价值   java如何关闭浏览器选项卡?   java如何在showMessageDialog中打印双2D数组?   java从站点抓取播放列表URL?   selenium中的java点击css按钮