一种既能处理散列键又能处理非散列键的dict
all-purpose-dict的Python项目详细描述
通用dict
目录
这是什么?
- 不需要哈希键的dict
为什么要创造它?
我经常需要在dict中存储不可散列的键。 内置dict不可能将dict作为密钥。
# doesn't worksomeDict={"key":"value"}anotherDict={someDict:"anotherValue"}
简单用法
fromall_purpose_dictimportApDictsomeDict={"key":"value"}anotherDict=ApDict([(someDict,"anotherValue")])print(someDictinanotherDict)# prints True
另见
api
注意:这个api很年轻,可能会有很大的变化。也可能有 内置dict中存在apdict没有涉及的功能。我是 愿意添加,所以请提出一个github问题或公关与细节。
类apdict([对列表])
- “pairs”可以是长度为2的列表或元组
- 除非另有说明,否则所有方法都返回
self
- 按插入顺序迭代
- 视图没有实现,因为我不需要它们。相反,我
暴露
keysIterator
和valuesIterator
。如果您需要查看,请提出 Github问题。 - 实施的内部方法是
- _包含
- _熟食
- _获取项目
- _ ITER_uu
- _长度
- _设置项
清除()
删除(键)
- 替代
del aDict[key]
的函数
获取(键,默认值=无)=>;值
- 如果key在字典中,则获取key的值,否则为默认值。
- 注意:这不会引发keyerror。
has(键)=>;bool
- 替代
key in aDict
的函数
getkeysiterator()=>;apdictkeysiterator
设置(键,值)
- 替代
aDict[key] = val
的函数
getvaluesiterator()=>;apdictvaluesiterator
测试
## you must have poetry installed# $ poetry shell $ poetry install $ python runTests.py