高性能自增加的插图。

automap的Python项目详细描述


自动映射

latest versionlatest release datebuild statusissues

automap是一个Python包,包含高性能的自增整数值映射。在

要安装,只需运行pip install automap。在

示例

automap对象有点像“逆序列”。它们有两种变体:

冻结自动映射

>>>fromautomapimportFrozenAutoMap

FrozenAutoMap对象是不可变的。它们可以由任何可散列的、唯一的键组成。在

^{pr2}$

这些值是整数,根据原始键的顺序递增:

>>>a["A"]0>>>a["C"]2>>>a["X"]Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>KeyError:'X'

提供完整的Mapping接口:

>>>[*a.keys()]['A','B','C']>>>[*a.values()][0,1,2]>>>[*a.items()][('A',0),('B',1),('C',2)]>>>a.get("X",42)42>>>"B"inaTrue>>>[*a]['A','B','C']

它们也可以使用|运算符相互组合:

>>>b=FrozenAutoMap(range(5))>>>c=FrozenAutoMap(range(5,10))>>>b|cautomap.FrozenAutoMap([0,1,2,3,4,5,6,7,8,9])>>>b|=c# Note that b is reassigned, not mutated!>>>bautomap.FrozenAutoMap([0,1,2,3,4,5,6,7,8,9])

自动映射

>>>fromautomapimportAutoMap

FrozenAutoMap对象不同,AutoMap对象可以增长;新的键可以是 已添加,但现有的不能删除或更改。在

>>>d=AutoMap("ABC")>>>dautomap.AutoMap(['A','B','C'])>>>d|="DEF"# Here, d *is* mutated!>>>dautomap.AutoMap(['A','B','C','D','E','F'])

它们还有addupdate方法来添加新密钥:

>>>e=AutoMap(["I","II","III"])>>>e.add("IV")>>>eautomap.AutoMap(['I','II','III','IV'])>>>e.update(["V","VI","VII"])>>>eautomap.AutoMap(['I','II','III','IV','V','VI','VII'])

性能

测试显示字符串键控的AutoMap对象的创建和访问速度提高了75% 比等效的dict结构快10%。他们倾向于接受 平均而言,内存量相同。您可以从此运行invoke performance 存储库以查看计算机上的比较。在

关于设计的更多细节可以在automap.c中找到。在

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

推荐PyPI第三方库


热门话题
用cucumberjvm执行java异步步骤   java通过Jackson2导出/导入JSON文件。9.7   java Tomcat在页面加载时给出500错误   将filereader合并到代码中的java问题   从GUI java将对象属性写入文件时发生swing错误   java简单程序,用于检查输入字符串是否为关键字(指定了关键字)   java如何在布局之间滑动时打开音频文件?   hibernate解析Java。lang.ClassCastException   java如何解决记录测试结果的Jenkins构建错误?   Java:在重写文件之前检查文件是否需要更新的最佳方法是什么?   mongodb在Java中重用数据库连接   java Hibernate(n+1)使用非k连接选择   java如何在Spring批处理中创建JSON文件读取器   java将MuPDF导入Android应用程序   字典我对Java中的多态性有疑问