可搜索的词典列表

dictregister的Python项目详细描述


dictregister
==


构建状态版本pypi下载


文档
----

`dictregister
文档<;https://dictregister.readthedocs.org/en/latest/>;`_

**dictregister**提供一个对象,该对象包含
字典的有序列表,并具有一些搜索和管理它们的功能。

字典是有用的对象,因为它们可以很容易地表示复杂的
对象;作为python中的一种基本语言结构,它们非常方便:
作为一个实例,它们是可序列化的,如果您曾经使用过json
,您就会习惯于看到它们。

因为字典是复杂的,您通常会编写一堆重复的代码来获取所需的信息。


**dictregister**充当标准的python列表,但只能包含
字典(实际上是实现collections.mapping的对象);
此外,它还提供函数通过
键搜索和管理字典,管理单个键并为每个
键存储多个值。


**dictregister**是一个纯python包,但其语法受到django查询语法的严重影响,因此django用户会在家里找到


事实上,**dictregister**就像一个小的键/值数据库。请注意,它在内存中存储值,并且没有优化,
因此将其用于小集合。


代码::python

import dictregister
dr=dictregister.dictregister()

代码::python

import dictregister
dr=dictregister.dictregister([{'x':1,'y':2},{'x':3,'y':4}])

,您可以使用类似于``append()``

的任何"list"方法。代码::python

import dictregister
dr=dictregister.dictregister()
dr.append({'x':1,'y':2})

``dictregister``只接受从抽象基类继承的对象。如果尝试插入不符合此规则的
对象,将收到
``typeerror`。


`` kadd()``





import dictregister
dr=dictregister.dictregister([{'x'x''1,'y''2',{'x''x''3,'y''4'4})
dr=[{'x''x''1,'y''2,'y''x''x''x''3,'y''4,'z''z'z'5)




import dictregister

<

<<<
<<


impimpimport
import<超过对于同一个键,您将得到一个
多值元素,该元素以特殊方式处理。请参见下面的
多值部分。

当您删除键时,可以无条件地执行此操作

。代码::python

dr=dictregister.dictregister([{'x':1,'y':2},{'x':3,'y':4}])
dr=[{'x':1,'y':2},{'x':3,'y':4}]
dr kremove('y')
dr=[{'x':1},{'x':3}

或者您可以指定一个值,在
这种情况下,只有与键和值都匹配的元素才会被删除。



import dictregister
dr=dictregister.dictregister([{'x'x'x':1,'y':2},{'x'x':3,'y':4}
dr=[{'x''x''x''1,{'x''x''x':3,'y':4]
dr dr kremove('y','4)






import dictregister

dr<<

最后,您可以替换一个键的值



……代码::python

import dictregister
dr=dictregister.dictregister([{'x':1,'y':2},{'x':3,'y':4}])
dr=[{'x':1,'y':2},{'x':3,'y':4}
dr kreplace('x',6)
dr==[{'x':6,'y':2},{'x':6,'y':4}]


高级用法
-



代码::python

dr=dictregister.dictregister([{'x':1,'y':2},{'x':3,'y':4}])
filtdr=dr.dfilter(x=1)
filtdr==[{'x':1,'y':2}

代码::python

import dictregister
dr=dictregister.dictregister([{'x':1,'y':2},{'x':3,'y':4},{'x':1,'y':6}])
filtdr=dr.dfilter(x=1)
filtdr==[{'x':1,'y':2{,'x':1,'y':6}
filtdr=dr.dfilter(x=1,y=2)
filtdr=[{'x':1,"y":2}


使用
``dget()``可以很容易地只获取筛选的第一个元素。记住,当"dfilter()"静默地接受不返回值的搜索时,返回空的"dictregister`",则"dget()`
会引发"indexerror"异常。

它返回一个"dictregister",其中包含已删除的
元素。代码::python

dr=dictregister.dictregister([{'x':1,'y':2},{'x':3,'y':4}])
filtdr=dr.dremove(x=1)
dr=[{'x':3,'y':4}
filtdr=[{'x':1,'y':2},{'x':1,'y':6}

删除的元素
``dremove_copy()``

…代码::python

import dictregister
dr=dictregister.dictregister([{'x':1,'y':2},{'x':3,'y':4},{'x':1,'y':6}])
filtdr=dr.dremove嫒copy(x=1)
dr"y":4}]

记住,如果找不到匹配的元素,``dpop()``将引发
``indexerror`'。

…代码::python

import dictregister
dr=dictregister.dictregister([{'x':1,'y':2},{'x':3,'y':4}),
filtdr=dr.dpop(x=1)
dr=[{'x':3,'y':4},{'x':1,'y':6})

`` dictregister``还提供了一个
``pop([i])``方法,该方法在索引``i``处弹出元素,如果未指定``i``则弹出第一个
元素。

代码::python

import dictregister
dr=dictregister.dictregister([{'x':1,'y':2},{'x':3,'y':4},{'x':1,'y':6}])
filtdr=dr.dfilter(x=1)。dremove_copy(y=2)
dr=[{'x':1,'y':2},{'x':3,'y':4},{'x':1,'y':6}]
filtdr=[{'x':1,"y":6}]

它将所有具有给定值的
给定键的字典匹配。





import dictregister
dr=dictregister.dictregister([{'x'x':1,'y':2,{'x':3,'y':4},{'x':1,'y':6})
filtdr=dr.dfilter(x=3)
filtdr=[{'x':3,'y':3,'y':4}
filtdr=dr.dfilter(x=3)


<
<
filtdr filtdr<<<
filtdr<<
<<不等式可与"ne"匹配。代码::python

dr=dictregister.dictregister([{'x':1,'y':2},{'x':3,'y':4},{'x':1,'y':6}])
filtdr=dr.dfilter(x_ne=1)
filtdr=[{'x':3,'y':4}


代码::python

import dictregister
dr=dictregister.dictregister([{'x':1,'y':2},{'x':3,'y':4},{'x':1,'y':6,'z':8}])
filtdr=dr.dfilter(z\u iskey=true)
filtdr==[{'x':1,'y':6,'z':8}
filtdr=dr.dfilter(z_u iskey=false)
filtdr===[{'x':1,'y':2},{'x':3,'y':4}

代码::python

import dictregister
dr=dictregister.dictregister()
dr.append({'x':1,'y':2})

您可以自由地将具有泛型
序列(最明显的是列表和集合)的词典附加为值。但是请记住,
``dictregister``并不认为序列本身是键的值,而是包含的元素;因此,如果需要将序列存储为值,则必须存储包含序列的``set`.

代码::python

dr=dictregister.dictregister([{'x':1,'y':2},{'x':3,'y':4}])
dr=[{'x':1,'y':2},{'x':3,'y':4}]
dr kadd('x',2)
dr=[{'x':set([1,2]),'y':2},{'x':set([2,3]),"y":4}]


可以使用"in"和"in"运算符匹配多个值。
首先将包含给定键的所有字典与其值之间的给定值进行匹配,而"in"则执行相反的匹配。代码::python

import dictregister
dr=dictregister.dictregister([{'x':集合([1,2]),'y':2},{'x':2,'y':4}])
filtdr=dr.dfilter(x_in=2)
filtdr==[{'x':集合([1,2]),'y':2},{'x':2,"y":4}]


如您所见,"dictregister"以相同的方式处理具有单个值和
多个值的键。

代码:sh



欢迎任何形式的贡献。随时提交
的问题进行更改并提交请求。作为我发布的第一个python
软件包,我很乐意接受关于这个主题的建议或更正,包括distutils、tests和朋友等。`_对于
他发表的"开源python project the right"
way<;http://www.jeffknupp.com/blog/2013/08/16/open-sourcing-a-python-project-the-right-way/>;` ` ` ` `.

多亏了"audrey m.roy<;http://www.audreymroy.com/>;` ` ` ` ` ` ` ` ` ` ` ` ` Cookiecutter<;https://github.com/audreyr/cookiecutter>;``和
`cookiecutter pypackage<;https://github.com/audreyr/cookiecutter pypackage>;``工具,大大简化了整个过程的实现。

|构建状态图像::https://travis-ci.org/lgiordani/dictregister.png?branch=master
:目标:https://travis ci.org/lgiordani/dictregister
…|图片版本:https://badge.fury.io/py/dictregister.png
:目标:http://badge.fury.io/py/dictregister
…| pypi下载image::https://pypip.in/d/dictregister/badge.png
:目标:https://crate.io/packages/dictregister?最新版本







历史
-



<0.9.0(2013-11-08年)0.9.0(2013-11-11-08)0.9.0(2013-11-08)0.9.0.0.0.0.0.0.1.0.0.0.1.0.0.0.0.1(2013-11-08)1.0.0.0.0.0.1.0.0.0.0.0.0.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.>0.9.1(2013-11-14)
++++++++++++++++*在python 3的初始化py中添加了dictregister的直接导入(感谢https://github.com/jeff17robbins)

>0.9.2(2013-11-14)
++++++++++++现在所有tox测试都通过了

1.0.0(2013-12-04)
+++++++++++++

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

推荐PyPI第三方库


热门话题
刷卡时java更改recyclerview项目背景   java如何在ServerSocketChannel上收集I/O统计信息   安卓 EditText始终返回Null Java NullPointerException   java 1美元的类文件名是什么?   java这是一个有效的方法吗?Eclipse似乎暗示我的代码存在ab问题。。我就是看不出来   在后台收到推送通知后更改java活动   java如何在TableViewerColumn中使用CheckBoxTableCell   java静态方法使用泛型创建内部类   java struts2<s:选择…>标签   java中变量范围内的错误输出   在类型与该类相同的类中声明的java静态变量   java在随机数列表中查找三角形   java如何检测Mac OS的右击事件   java为现有CSV文件创建DAO   javax的ClassNotFoundException。xml。绑定切换到Java 9时,JAXBEException与Spring启动   安卓将Kotlin算法翻译成Java代码   java m从recylerview获取错误,因为我试图从sqlite获取数据并设置为recylerview