可搜索的词典列表
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)
+++++++++++++
==
构建状态版本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=[{'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
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
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
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=[{'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)
+++++++++++++