MIDICT(多索引DICT)可由任何“键”或“值”索引,适合作为双向/反向DICT或多键/多值DICT(Python 2和3中的DIT替换的下降)。
midict的Python项目详细描述
MIDict是一个有多个索引的有序“字典” 其中任何索引都可以用作“键”或“值”, 能够通过其强大的索引语法来评估多个值, 适用于双向/反向dict(替换 对于python 2&3中的dict/ordereddict)。
功能
- 多个索引
- 多值索引语法
- 便捷索引快捷方式
- 双向/反向dict
- 与Python2&3中的普通dict兼容
- 通过属性访问键
- 多指标的扩展方法
- 处理索引的其他api
- 重复键/值处理
快速启动
name | uid | ip |
---|---|---|
jack | 1 | 192.1 |
tony | 2 | 192.2 |
上面类似于表的数据集(具有多个列/索引)可以使用MIDict:
user=MIDict([['jack',1,'192.1'],# list of items (rows of data)['tony',2,'192.2']],['name','uid','ip'])# a list of index names
访问键并获取值或值列表(类似于普通的dict):
user['jack']==[1,'192.1']
任何索引(列)都可以通过高级 “多索引”语法^ {TT4} $。 index_key和index_value都可以是普通索引名 或者int(索引的顺序)和index_value也可以是 tuple,list或slice对象来指定多个值,例如:
user['name':'jack','uid']==1user['ip':'192.1','name']=='jack'user['name':'jack',('uid','ip')]==[1,'192.1']user[0:'jack',[1,2]]==[1,'192.1']user['name':'jack','uid':]==[1,'192.1']
“多索引”语法也有捷径:
user['jack']==[1,'192.1']user[:'192.1']==['jack',1]user['jack',:]==['jack',1,'192.1']
带2个索引的MIDict可以用作双向/反向dict:
mi_dict=MIDict(jack=1,tony=2)mi_dict['jack']==1# forward indexing: d[key] -> valuemi_dict[:1]=='jack'# backward/inverse indexing: d[:value] -> key
开发
源代码:https://github.com/ShenggaoZhu/midict
报告问题:https://github.com/ShenggaoZhu/midict/issues/new
测试
python tests/tests.py
使用Python2.7和Python3,3,3.4,3.5进行测试。