集合的dicts的容器-dictset的替代品

metaset的Python项目详细描述


这个包提供了一个集合,它基本上是一个“集合的dict”,名为metaset。

Build statusSupported Python versionsWheel statusLicense

快速启动

使用pip:

pip install metaset

或来自github:

git clone git://github.com/Polyconseil/metaset.git

导入代码:

>>>frommetasetimportMetaSet

用法很直接, 通过二进制运算符+-|^支持基本集合操作。

>>>frompprintimportpprint>>>pprint(MetaSet(a={1,2},b={3})|MetaSet(b={4},c={5})){'a':{1,2},'b':{3,4},'c':{5}}

django postgres

可使用自定义django字段。 很简单:

>>>frommetaset.django_fieldimportMetaSetField>>>fromdjango.dbimportmodels# doctest: +SKIP>>>classMyModel(models.Model):# doctest: +SKIPmset=MetaSetField()# doctest: +SKIP

它与以下版本兼容:

  • django 1.11,python 2.7
  • django 2.1,python 3.6

详细注意事项

它们是两种考虑“集合论”概念的方法, 在如何处理键的空值上有所不同。

最简单的想法是认为没有内容的密钥是不存在的。 这就是dictset包的实现方式。

在这个替代的实现中, 我们选择保留空键作为有意义的元素, 允许智能工会和交叉路口。

>>>pprint(MetaSet(a={1})|MetaSet(a={2},b=set())){'a':{1,2},'b':set()}>>>MetaSet(a={1})&MetaSet(a={2},b={3}){'a':set()}

所以,当心如何处理空钥匙, 如果它更适合您的用例,请考虑使用dictset。 减法和对称差分的行为, 虽然从数学的角度来看,可能不是你想要的。

>>>MetaSet(a={1})-MetaSet(a={1}){'a':set()}>>>MetaSet(a={1})^MetaSet(a={1}){'a':set()}

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

推荐PyPI第三方库


热门话题
验证Java验证用户输入的一系列数字   java如何在SpringBoot中字段验证失败时在ConstraintViolationException中获取RequestParam名称   java如何解决Vertx阻塞DNS问题   java意外类型平均值   java如何将dataframe的UUID列转换为包含相同十六进制序列的简单字符串?   身份散列映射的java用法   java无法在eclipse中导入现有项目   进程从运行的java程序中获取CPU号   java将文本视图的特定行滚动到顶部在最后一个屏幕上不起作用   无法初始化java SpringSecurityFilterChain   java当我在项目中使用volatile时,为什么下面的代码显示不同的结果?   是否有转换java的标准方法。util。函数,消费者<T>转换为java。util。作用函数<T,Void>   java nginx分块传输编码失败   java如何将几个IF转换为一个循环   java URI从路径中删除/删除