Java TreeMap/TreeSet的Python实现
pytreemap的Python项目详细描述
pytreemap
Java树映射/树的Python实现。在
安装
使用pip安装:
pip install pytreemap
文件
可以在以下位置访问文档:https://gavinphr.github.io/pytreemap/
基本用途
这个演示旨在向您展示这个包中可用的基本操作。 有关更多详细信息,请参阅文档。在
导入并实例化
^{pr2}$插入键值映射
>>>tm[5]='Python is great!'>>>print(tm){5=Pythonisgreat!}>>>tm[10]='Java is also nice!'>>>print(tm){5=Pythonisgreat!,10=Javaisalsonice!}>>>tm.put(-1,'We love them both!')>>>print(tm){-1=Welovethemboth!,5=Pythonisgreat!,10=Javaisalsonice!}
搜索键
>>>tm[5]'Python is great!'>>>tm[2]KeyError:'key not found'>>>tm.get(2)# No error is raised
删除键值映射
>>>deltm[10]>>>print(tm){-1=Welovethemboth!,5=Pythonisgreat!}>>>deltm[2]KeyError:'key not found'>>>tm.remove(2)# No error is raised
检查是否存在一些钥匙
>>>2intmFalse>>>-1intmTrue>>>tm.contains_key(-1)True
迭代键/值/项
>>>[keyforkeyintm][-1,5]>>>[keyforkeyintm.key_set()][-1,5]>>>[valueforvalueintm.values()]['We love them both!','Python is great!']>>>[entryforentryintm.entry_set()][-1=Welovethemboth!,5=Pythonisgreat!]
测试
Java中与TreeMap相关的大多数测试都通过了。查看tests/目录以了解更多详细信息。在
基准
所有的基准测试都是在一台带有英特尔酷睿i7-7700hqcpu和16GB内存的笔记本电脑上完成的。在
由于这个包是Java树映射的实现,所以基准测试集中在比较这个包和Java树映射之间的性能。在
这个包目前是用纯Python编写的,它比Java慢得多,尤其是当树很大的时候。在
一个Cython版本正在制作中。在
基准程序:
- 在
准备具有不同键的n个条目。(n范围从1000到60000,间隔1000)
在 - 在
将它们随机插入/移除/搜索到地图中,并记录完成时间。在
在 - 在
再重复步骤1-2两次,取结果的平均值。在
在
以下是使用Java TreeMap的结果:
在
下面是使用pytreemap的结果:
在
将这些图叠加在一起,我们可以看到pytreemap慢了大约30倍:
在
- 项目
标签: