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.compare
与CSequenceMatcher
一起工作
- 1.0.1-在C语言中实现更多的位,以挤出更多的速度
- 1.0.0-首次发布