MIDICT(多索引DICT)可由任何“键”或“值”索引,适合作为双向/反向DICT或多键/多值DICT(Python 2和3中的DIT替换的下降)。

midict的Python项目详细描述


LicensePyPI ReleaseSupported Python versionsDocumentationTravis Build StatusTest coverageCode quality

MIDict是一个有多个索引的有序“字典” 其中任何索引都可以用作“键”或“值”, 能够通过其强大的索引语法来评估多个值, 适用于双向/反向dict(替换 对于python 2&3中的dict/ordereddict)。

功能

  • 多个索引
  • 多值索引语法
  • 便捷索引快捷方式
  • 双向/反向dict
  • 与Python2&3中的普通dict兼容
  • 通过属性访问键
  • 多指标的扩展方法
  • 处理索引的其他api
  • 重复键/值处理

快速启动

nameuidip
jack1192.1
tony2192.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_keyindex_value都可以是普通索引名 或者int(索引的顺序)和index_value也可以是 tuplelistslice对象来指定多个值,例如:

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

安装

pip install midict

PYPI存储库:https://pypi.python.org/pypi/midict

开发

源代码:https://github.com/ShenggaoZhu/midict

报告问题:https://github.com/ShenggaoZhu/midict/issues/new

测试

python tests/tests.py

使用Python2.7和Python3,3,3.4,3.5进行测试。

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

推荐PyPI第三方库


热门话题
Frida Java windows的逆向工程   Java术语中的对象初始化   java在何处放置maven参数化junit输入xml文件   java如何在Swift中创建以日期为键、布尔值为值的字典/地图?   java Velocity动态属性访问   java Maven站点我如何找到它们?   java JavaFX按钮在显示阶段时显示为选中状态   文件io字符串方法java赋值   java为SOAP头生成证书   java Android更改EditText的setError弹出消息的背景色   java格式存储为字符串的数字   java Testcontainers+dbrider:无法清除表X,消息:启用自动提交时无法提交。,原因:无效   java程序应该可以运行,但仍然没有输出?   Java在列表末尾添加一个节点?   java类对象中的默认构造函数做什么?   java如何更快地从映射返回键和值?