difflib部分的c实现

cdifflib的Python项目详细描述


cdifflib

pythondifflib序列 匹配器在C中重新实现。

实际上只包含重新实现的部分。创建CSequenceMatcher类型 它继承了difflib.SequenceMatcher的大部分功能。

cdifflib扩散时的速度大约是纯Python的4倍。 大河。

限制

代码的c部分只能在list上工作,而不能在泛型iterable上工作, 因此,任何不是list的内容都将在 CSequenceMatcher构造函数。如果你 没想到。

适用于Python2.7和3.6(应适用于所有3.3+)

用法

可以像difflib.SequenceMatcher一样使用,只要您传递列表。这些例子正好出自difflib docs

>>>fromcdifflibimportCSequenceMatcher>>>s=CSequenceMatcher(None,' abcd','abcd abcd')>>>s.find_longest_match(0,5,0,9)Match(a=1,b=0,size=4)>>>s=CSequenceMatcher(lambdax:x==" ",..."private Thread currentThread;",..."private volatile Thread currentThread;")>>>printround(s.ratio(),3)0.866

它完全兼容,因此可以在启动时替换difflib版本 然后其他库也将使用csequencematcher,例如:

fromcdifflibimportCSequenceMatcherimportdifflibdifflib.SequenceMatcher=CSequenceMatcherimportlibrary_that_uses_difflib# Now the library will transparantely be using the C SequenceMatcher - other# things remain the samelibrary_that_uses_difflib.do_some_diffing()

制作

要安装:

python setup.py install

测试:

python setup.py test

许可证等

此代码位于https://github.com/mduggan。请参阅许可证以获取许可证。

更改日志

  • 1.2.5-修复一些内存泄漏(7)
  • 1.2.4-再次使用tween重新打包以上载pypi(无二进制更改)
  • 1.2.3-使用changelog update和corrected src包重新打包(无二进制更改)
  • 1.2.2-重新打包以pypi支持的方式添加readme.md(无二进制更改)
  • 1.2.1-使用“autojunk”修复较长序列的错误
  • 1.2.0-Python3支持其他版本
  • 1.1.0-添加了Python3.6支持(感谢BClavie)
  • 1.0.4-更改以使其在MSVC++编译器上编译,对于其他平台
  • 没有更改
  • 1.0.2-错误修复-还替换set_seq1实现,因此difflib.compareCSequenceMatcher
  • 一起工作
  • 1.0.1-在C语言中实现更多的位,以挤出更多的速度
  • 1.0.0-首次发布

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

推荐PyPI第三方库


热门话题
java IBM Notes 9电子邮件问题。自动从我的收件箱转发到另一个收件人   Android上的java覆盖删除键?   java More JPanel和背景图像   java AStar寻路|六角夹点   java Android存档库(aar)与标准jar   java转换docx后没有空行   java如何搜索FTS3表,使搜索的单词显示在列表的顶部   java运算符重载STL的性能损失是什么   java在本机SQL Hibernate中使用addJoin   使用hibernate的java动态列   java为什么整数在放入数组后会改变值?   如何将|系列与Java正则表达式匹配?   java问题在binarySearch中传递参数   Java:关于导入语句中使用的路径的愚蠢新手问题   java无法在文本框安卓中显示数据库中的数据   使用Java中的旧文件详细信息创建文件   java按降序进行升序快速排序