一种多向映射,其中任意数目的列扫描用作键。

multidirmap的Python项目详细描述


多方向映射

多向映射,其中任意数量的列可以用作键。

状态

Documentation StatusTravis-CI Build StatusAppVeyor Build StatusCoverage StatusPyPI Package latest releasePyPI WheelSupported versionsSupported implementationsLicense

安装

$ pip install multidirmap

快速启动

>>>frommultidirmapimportMultiDirMap>>>crew=MultiDirMap(["character","portrayed_by","role","nicknames"],key_columns=2,data=[["Malcolm Reynolds","Nathan Fillion","Captain",["Mal","Captain Tight Pants"]],["Zoë Washburne","Gina Torres","First Mate"],["Hoban Washburne","Alan Tudyk","Pilot","Wash"]])>>>crew["Malcolm Reynolds"].roleCaptain>>>crew.portrayed_by["Nathan Fillion"].nicknames["Mal","Captain Tight Pants"]

功能

  • 所需的列数可以用作映射的键列
  • o(1)从任何键列检索
  • 通过对内容的任何修改保持内部一致性
  • 插入顺序在主键列中保持
  • 内置精美的地图打印功能

用例

字典在pyton中无处不在,并且提供了非常有用和快速的 从键到值的映射。有时,一个单一的单向映射不是 但是,当bidict扩展时 此功能到双向映射,multidirmap提供了 类似数组的数据结构,其中任意数量的列可用于o(1) 检索。在其最简单的实现中(2列,其中一列是键 它本质上提供了与dict相同的功能,尽管 额外的开销(不要那样做…)。两列都是键列 会有点像bidict,尽管语法略有不同。但是 {EM1}$MuldiDMAP[EEM]在任何数量的密钥中都更灵活 可以使用非键列。 在pandas数据帧中可以实现类似的效果,尽管 (1)无法确保密钥的唯一性,因此检索可以返回任何数字 行的(2)使用数组结构,因此检索是o(n),对于大型 数组可以得到非常慢的,并且(3)需要安装panda,panda 是一个相当大的库,仅用于此功能。

假设我们想处理元素周期表中的信息,比如

[["H","Hydrogen",1,[1,2,3]],["He","Helium",2,[4,3]],["Li","Lithium",3,[7,6]],...["Og","Oganesson",118,[295,294]]]

其中列表示的符号、名称、原子序数和核子序数 分别是同位素。前三列显然是键的候选者 按定义,列是唯一的。multidirmap允许放置 在一个统一的数据结构中的信息 锂的同位素核子数?“,”的化学元素符号是什么 钾?,或“原子序数为46的元素的名称是什么?”“可以 用一个简单的语法和o(1)检索。任何数量的附加 可以添加键列和非键列。

促使开发这个包的用例涉及struct 模块:对于二进制接口,我需要在(1)之间来回转换 变量类型的字符串表示,(2)整数表示 变量类型的,(3)结构格式字符,和(4)以字节为单位的大小 变量。同样,1-3显然是键列的候选者,4是 非键列。如果没有multidirmap,则必须使用几个单独的dict 提供从一列到另一列所需的每个映射 以确保这些指令在可能的情况下保持一致 变化。

更改日志

0.2.0(2019-07-12)

  • 自定义排序
  • 重新排序辅助键

0.1.0(2018-07-28)

  • pypi上的第一个版本。

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

推荐PyPI第三方库


热门话题
java Play Framework 2.1中的简单搜索?   java:Springbeans的真正工作原理   java不能从字符串中提取数字   不同管道中的java共享ExecutionHandler   在Java中,如何为扩展comparator的类实现多个comparator方法?   通用混沌Java   java问题:从自定义类获取要添加到驱动程序类的形状   java如何利用HikariCP和Hibernate?   eclipse如何执行Java应用程序?   用户界面Java Swing:如何将JLabel的文本绑定到JTable选定行中的列?   java替换JPanel元素而不添加到面板的末尾?   java Sets根据action命令在按钮组中选择了特定的jradiobutton   在java中如何将从控制台添加的字符串中的元素添加到列表中   处理未在浏览器上运行的Java签名小程序   java如何在我的安卓应用程序中单击任意按钮时禁用音频音调?   编码如何在Java中将十六进制转换为utf8编码的字符串   java JSF Spring安全集成问题   java如何更正Oracle for Windows中的字符?   java Spark结构化流媒体:当前批次落后   java Hibernate根据最匹配的条件排序结果