按插入顺序编入索引的字典。

indexed.p的Python项目详细描述


Build status

简介

indexed.IndexedOrderedDictcollections.OrderedDict,可作为替换项使用。 主要区别在于键、值和项视图支持访问 元素的索引。

d = indexed.IndexedOrderedDict()
d["first-key"] = "first-value"
d["second-key"] = "second-value"
d["third-key"] = "third-value"

values = d.values()
assert values[2] == "third-value"

assert d.keys().index("second-key") == 1

功能

  • 可与Python2和3一起使用。提供keysview()valuesview()itemsview(),已从python 3中删除 兼容性。
  • 按索引访问键、值和项,例如d.keys()[5]
  • 查找键的索引,例如d.keys().index("key")

不包括这些附加的api与 collections.OrderedDict()。包括:

  • 初始化、设置、获取和删除项目
  • 向前和反向迭代
  • d.clear()
  • d.popitem(last=True)
  • d.move_to_end(key, last=True)
  • d.keys()d.values()d.items()
  • d.pop(key[, default])
  • d.setdefault(key, default=None)
  • 字符串表示法
  • 酸洗
  • 复制
  • 从键创建
  • 与其他有序词典或顺序敏感地比较顺序 与标准映射无关

安装

唯一的依赖项是python>;=2.7或python>;=3.0。

  • 使用pip:

    sudo pip install indexed.py
    
  • 使用简易安装:

    sudo easy_install indexed.py
    
  • 来自当前源代码:

    python setup.py build
    sudo python setup.py install
    

性能

性能实际上与内置 collections.OrderedDict

d^{tt2}$^{tt1}$
OperationAvergageWorst caseAverageWorst case
d.copy()O(n)O(n)O(n)O(n)
d[key]O(1)O(n)O(1)O(n)
d[key] = valueO(1)O(n) [1]O(1)O(n) [1]
del d[key]O(1)O(n)O(n)O(n)
d.keys()[i]O(n) [2]O(n) [2]O(1)O(1)
d.values()[i]O(n) [3]O(n) [3]O(1)O(n)
d.items()[i]O(n) [3]O(n) [3]O(1)O(n)
d.keys().index(x)O(n) [3]O(n) [3]O(n)O(n)
[1](1, 2) These are amortized worst case runtimes.
[2](1, 2) This does not work in Python 3 because ^{tt20}$ is not indexable. One of the theoretically best work arounds is ^{tt21}$.
[3](1, 2, 3, 4, 5, 6) Assuming the theoretically best possible workaround.

许可证

index.py是根据GPL3授权的。查看许可文件以获取完整的版权 以及许可证信息。

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

推荐PyPI第三方库


热门话题
java如何使用Spring和JSF向客户端授予临时权限   java除了Array/ArrayList之外,还有其他保存矩阵元素的方法吗   java BeanValidation不适用于单选按钮   通过java程序连接到配置单元数据库时出错   java如何使用maven解决二级依赖关系   JfreeChart/Java中带有图例的数据表   合并数组时发生java运行时错误   安全性如何在JavaEE中保护WebSocket端点?   java有没有一种方法可以使用insert方法为树插入值   java编程“静态”的另一种方式:代码可以吗?   java阅读文本文件时如何跳过3行   %04X在C中的含义以及如何在java中编写   java我如何验证一个方法不是仅在一个测试范围内对模拟调用的?   java如何在mac中使用启动appium desktop 1.6.1。球棒   仅匹配最多10位小数的java正则表达式