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 Spring数据elasticsearch@Query嵌套对象注释   java JAXB解组器正在跳过具有其他命名空间的元素   java Web视图文件选择器崩溃问题   macos通过java创建的应用程序访问MacOSX上的麦克风,并打包到。dmg   在子文件夹上使用java设置ACL的文件权限失败(缺少继承)   java Force在AlertDialog中显示软键盘   java如何保存上传的文件   java如何从jpeg文件中的FFC4(DHT)头创建哈夫曼树?   关于高性能流数据处理的java问题   SpringMVC项目中Tiles页面的java集标题   从Java到Webview Javascript的Android回调函数   java无法从循环打印“FlimFlam”   OpenJDK安装时没有java命令