用cython实现cedar的python绑定

pycedar的Python项目详细描述


松柏

versionpythonlicense

使用cython的python绑定cedar(高效可更新双数组trie的实现)

cedarhttp://www.tkl.iis.u-tokyo.ac.jp/~ynaga/cedar/

的官方URL

安装

从pypi release安装

$ pip install --user pycedar

从github master安装

$ pip install --user https://github.com/akivajp/pycedar/archive/master.zip

用法

使用基于双数组trie

的类似python的dict类
>>>importpycedar>>>d=pycedar.dict()>>>print(len(d))0>>>print(bool(d))False>>>print(list(d))[]>>>d['nineteen']=19>>>d.set('twenty',20)>>>d['twenty one']=21>>>d['twenty two']=22>>>d['twenty three']=23>>>d['twenty four']=24>>>print(len(d))6>>>print(bool(d))True>>>print(list(d))['nineteen','twenty','twenty four','twenty one','twenty three','twenty two']>>>print(list(d.keys()))['nineteen','twenty','twenty four','twenty one','twenty three','twenty two']>>>print(list(d.values()))[19,20,24,21,23,22]>>>print(list(d.items()))[('nineteen',19),('twenty',20),('twenty four',24),('twenty one',21),('twenty three',23),('twenty two',22)]>>>print(d['twenty four'])24>>>print('twenty four'ind)True>>>deld['twenty four']>>>print('twenty four'ind)False>>>try:>>>print(d['twenty four'])>>>exceptExceptionase:>>>print(repr(e))KeyError('twenty four',)>>>print(d.get('twenty three'))23>>>print(d.get('twenty four'))-1>>>print(d.get('twenty four',None))None>>>print(list(d.find('')))[('nineteen',19),('twenty',20),('twenty one',21),('twenty three',23),('twenty two',22)]>>>print(list(d.find('tw')))[('twenty',20),('twenty one',21),('twenty three',23),('twenty two',22)]>>>print(list(d.find('twenty t')))[('twenty three',23),('twenty two',22)]>>>print(list(d.find_keys('twenty')))['twenty','twenty one','twenty three','twenty two']>>>print(list(d.find_values('twenty')))[20,21,23,22]>>>n=d.get_node('twenty')>>>print(n)'twenty'>>>print(repr(n))pycedar.node(trie=<pycedar.str_trieobjectat0x7fffe2394b80>,id=260,length=6,root=0)>>>print(n.key())twenty>>>print(n.value())20>>>print([n.key()forninn.find_nodes(' t')])[' three',' two']>>>n=d.get_node('twenty ')>>>print(n)None>>>d.save('test.dat')>>>d2=pycedar.dict()>>>print(d2.setdefault('eighteen',18))18>>>print(list(d2.items()))[('eighteen',18)]>>>d2.load('test.dat')>>>print(list(d2.items()))[('nineteen',19),('twenty',20),('twenty one',21),('twenty three',23),('twenty two',22)]>>>print(d2.setdefault('eighteen',18))18>>>print(list(d2.items()))[('eighteen',18),('nineteen',19),('twenty',20),('twenty one',21),('twenty three',23),('twenty two',22)]

使用更原始的数据结构

(待定)

待办事项

  • 课程文件:
    • 基准线
    • str_trie
    • 字节重试
    • Unicode_-trie
    • 节点

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

推荐PyPI第三方库


热门话题
java为新对象()保留了多少内存空间;   keytool错误:java。木卫一。IOException:安卓密钥库被篡改或密码不正确   java Recyclerview不可点击安卓 studio(可能是我的代码错误?)   爪哇警报每天早上5点   安卓为java循环中的json对象添加值   java NetBeans“与编辑器链接”功能   SQL Server与Java EE演练   如何在Java应用程序中嵌入迷你控制台?   java Pig UDF,在批处理过程中删除分布式缓存中的文件   javascript使用GWT关闭网络摄像头和灯光   将Eclipse开普勒SR1升级到SR2时发生java错误?   java使用HashMap计算数组中某些整数的数量   java如何保护Android代码不受反向工程的影响?   java为什么添加这个防御副本可以避免死锁?   java我无法上传文件,需要哪些jar文件?   在java中,同一个程序可以作为服务器运行,也可以作为其他程序的客户端运行?   java从内部记录访问非静态外部上下文   java如何在使用Hibernate时打印带有参数值的查询字符串   Java向量类未更新