不区分大小写可导字典

pydicti的Python项目详细描述


Test StatusCoverageLatest VersionLicense

安装

您可以从PyPI

安装pydict的最新版本
pip install pydicti

或者,您可以获取文件pydicti.py并重新分发 和你的申请书一起。

概述

  • class dicti:默认不区分大小写字典类型
  • class odicti:不区分大小写的有序字典类型
  • def build_dicti:创建一个不区分大小写的字典类
  • def Dicti:创建字典的不区分大小写副本

迪克

类型为dicti的对象是不区分大小写的字典 项目访问:

>>>d=dicti(Hello='foo',world='bar')>>>d['heLLO']'foo'>>>'WOrld'indTrue

但在内部,这些键保留原来的大小写:

>>>sorted(d.keys())['Hello','world']

奥迪克蒂

类型odicti实例化保留顺序的不区分大小写 词典:

>>>odicti(zip('abc',range(3)))Dicti(OrderedDict([('a',0),('b',1),('c',2)]))

构建

使用build_dicti可以创建自定义的不区分大小写词典。 此函数用于创建pydicti.dictipydicti.odicti类型。注意,多次调用build_dicti。 使用相同的参数将导致相同的类型:

>>>build_dicti(dict)isdictiTrue>>>build_dicti(OrderedDict)isodictiTrue

build_dicti使用子类继承给定基的语义 词典类型:

>>>issubclass(odicti,OrderedDict)True

迪克

函数Dicti便于创建不区分大小写 字典实例的副本:

>>>o=OrderedDict(zip('abcdefg',range(7)))>>>oi=Dicti(o)>>>type(oi)isodictiTrue

json

子类化方法允许将字典实例插入 使用isinstance进行类型检查的位置,如json 模块:

>>>importjson>>>d==json.loads(json.dumps(d),object_hook=dicti)True

您可以使用json.loads(s, object_pairs_hook=odicti)来 反序列化排序字典。

陷阱

相等比较尝试保留基类型的语义为 良好的自反性。这对 比较运算符:

>>>i=dicti(oi)>>>roi=odicti(reversed(list(oi.items())))>>>roi==iandi==oiTrue>>>oi!=roiandroi!=oi# NOT transitive!True>>>oi==iandi==oi# reflexiveTrue

python中的coercion rules允许在 在互为子类的类型之间执行比较。成为 不过,要小心。

许可证

版权所有©2013 Thomas Gl_le<;t_glaessle@gmx.de>;

这项工作是免费的。您可以在 “做你想做的事”的条款,第二版,作为 由Sam Hocevar出版。有关详细信息,请参见复制文件。

这个程序是免费软件。它没有任何保证 适用法律允许的范围。

更改日志

1.1.3

日期:2019年6月28日

  • 避免在__setitem__
  • 中重新计算密钥

1.1.2

日期:2019年6月28日

  • 在odicti(2)中保持赋值项顺序不变
  • 在赋值下保持密钥大小写不变

1.1.1

日期:2019年3月25日

  • 修复不推荐的mutablemapping导入(py38上的错误)

1.1.0

日期:2019年3月19日

  • 放弃PY2.6支持
  • 修复long_描述中的版本号

1.0.0

日期:2019年3月19日

  • 使str表示更像dict
  • 杂项清理

0.0.6

日期:2016年9月8日

  • 当utf-8不是默认编码时,修复安装程序中的unicodedecodeerror

0.0.5

日期:2016年5月18日

  • 将酸洗固定在PY 3.5上
  • “name”参数现在可以是一个qualname

0.0.4

日期:2014年2月1日

  • 添加覆盖率报告
  • 使用更广泛的单元测试
  • 添加对pickle的支持

0.0.3

日期:2014年1月26日

  • 添加对python26的支持
  • 使对OrderedDict的依赖成为可选的
  • 迁移到setuptools以使用测试命令
  • 支持ordereddict.OrderedDict作为回退

0.0.2

日期:2013年12月29日

  • 修复dicti.pop
  • 支持deepcopy(dicti)
  • 使nosetest自动执行doctests

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

推荐PyPI第三方库


热门话题
如何使用java向dropup html/css添加项目   如何从java中的向量向量打印   Java Maven库项目模板   java使用atmosphere api还是直接使用grizzly?   java JComponent仅部分显示   如何将动态值传递给自定义注释,以从Java数据进行映射。性质   java破解已实现方法的返回类型的最佳方法?   java Netbeans在JFrame Gui布局中覆盖图像   spring java仅向登录用户显示注销按钮   java如何对com进行身份验证。谷歌。云bigquery。带有服务帐户的BigQuery`   java禁止空字符串参数和抛出RuntimeException以阻止方法继续的利弊   java分析项目中的所有JAR以获取版本和许可证信息   Java,数据库为什么要分配一个新对象,而我们可以直接将它放入数据库