plane dict是一个类似dict的类,它将内置dict类表示为一个“平面”结构,即pairs路径值。path是键的元组,value是允许内置dict的值。

planedict的Python项目详细描述


平面图

VersionPyVersionsStatusCoverageLicense

planedict是一个类似dict的类,它表示内置的dict类 作为“平面”结构,即路径-值对。path是一组键, 值是一个允许内置dict的值。

支持的方法:
  • 本机:
    • _检查路径(自我,路径)
  • 覆盖:
    • _初始化(self,seq=none,factory=dict,**kwargs)
    • _获取项目(自我,路径)
    • _设置项(自身、路径、值)
    • _ Delitem(自我,路径)
    • _ ITER(自我)
    • _长度(自身)
    • _代表(本人)
    • 获取(self,key,default=none,stddict=false)
  • 继承:
    • 清除(自身)
    • 弹出(self,key,default=<;object object>;)
    • popitem(自我)
    • 设置默认值(self,key,default=none)
    • 更新(*args,**kwds)
    • _包含(self,key)
    • _情商(自我,其他)
    • _不(自我,其他)
    • 按键(自行)
    • Iterkeys(自我)
    • 值(自身)
    • i值(自身)
    • 项目(自身)
    • ITeritems(自我)

安装

$ pip install planedict

注释

  1. 构造函数有工厂参数,它需要类似dict的类(默认情况下是dict)。 ordereddict很有用。

  2. 在按路径删除值之后,如果较高的指令将变为 空的,它们将被移除。

  3. get方法具有stddict参数。如果为真,则方法将返回 内置dict,它将返回planedict对象else。

  4. 如果planedict对象被传递给update方法,则它是一个“软” 更新,即交叉值将被覆盖,新的 将添加值。 如果将标准dict传递给update方法,它将作为 标准更新方法。

  5. _ check_path_uuu方法接受一系列键。 例如:u check_u path_uu((1,[2,[3]],4,(5,6),(i代表i在[7,8])) 返回(1,2,3,4,(5,6),7,8)。从中可以看到 上面的例子中,元组不是展开的,因为元组可以是 dict的一个键。如果你想得到一个单键元组, 你应该这样做:

    d[('key',),]

    or

    path='key',d[path,]

参见示例。

示例

d=PlaneDict({'key1':{'key2':'val2','key3':'val3'},'key4':{'key5':{'key6':'val6'}}})>>>len(d)3>>>d['key4','key5','key6']'val6'>>>path=['key1','key2','key10']>>>d[path]=1>>>d[path]1>>>deld['key4','key5','key6']>>>d{'key1':{'key3':'val3','key2':'val2'}}>>>list(d)[('key1','key3'),('key1','key2'),('key4','key5','key6')]>>>d.get('key1',stddict=True){'key3':'val3','key2':'val2'}>>>d.get(('key1','key2'))'val2'>>>d.clear()>>>printd{}>>>d.pop(['key4','key5','key6'],default=None)'val6'>>>d.pop(['key4','key5','key6'],default=None)None>>>d.popitem()(('key1','key3'),'val3')>>>d.setdefault(['key1','key2'],default=None)'val2'>>>d.setdefault(['key1','key7','key8','key9'],default=None)>>>d['key1']{'key3':'val3','key2':'val2','key7':{'key8':{'key9':None}}}>>>update={'key1':{'key10':'val10'}}>>>d.update(PlaneDict(update))>>>d{'key1':{'key2':'val2','key3':'val3','key10':'val10'},'key4':{'key5':{'key6':'val6'}}}>>>d.update(update)>>>d{'key1':{'key10':'val10'},'key4':{'key5':{'key6':'val6'}}}>>>d.keys()[('key1','key3'),('key1','key2'),('key4','key5','key6')]>>>d.values()['val3','val2','val6']>>>d.items()[(('key1','key3'),'val3'),(('key1','key2'),'val2'),(('key4','key5','key6'),'val6')]>>>['key1','key2']indTrue>>>['key1','missed_key']indFalse>>>d==PlaneDict({'key1':{'key2':'val2','key3':'val3'},'key4':{'key5':{'key6':'val6'}}})True>>>d=={'key1':{'key2':'val2','key3':'val3'},'key4':{'key5':{'key6':'val6'}}}False

许可证

麻省理工学院许可。有关详细信息,请参阅捆绑的LICENSE文件。

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

推荐PyPI第三方库


热门话题
如何表示1。。Java中的n关系   java在安卓应用程序中添加polaris viewer   Java字符串::replaceAll仅替换第一个出现(可能不正确的正则表达式)   java Tomcat/JBoss部署后脚本   如何在Heroku Java应用程序中运行发出web请求的周期进程   java如何以纳秒为单位证明算法的时间   Solaris上的java自定义ListCellRenderer(使用jre5)   java试图为我的播放器类测试块实现播放器重力(RealtutsGml平台教程)   c#消耗一个。带有java的net web服务未显示预期结果   java在KOI8\R中检索html   基于java图形的搜索与基于随机的搜索   java如何检查安卓设备上的可用空间?在SD卡上?