数据重新映射技术

时间:2017-10-06 22:13:26

标签: python json go

我有一个哈希/关联数组列表和其他嵌套对象,例如哈希哈希等。样本数据是json格式。

简易部分

从上面描述的复杂数据结构中我只对特定的重复 {k,v} 对感兴趣,它们可以重新构造,并且可以作为参数迭代地传递给一个远程过程。远程进程对值 v 执行操作,并生成输出'V'。输出'V'可以作为 {k,V} 映射回'k' - 这是一个相当常见的问题,如:< / p>

Iternation 1:

{k1,v1} == “为输入提取并重新构建 v1 ==&gt;(进程)== “输出” ==&gt; {V1} == “映射到k1” ==&gt; {k1,V1}

迭代2:

{k2,v2} == “为输入提取并重新构建 v2 ==&gt;(进程)== “输出” ==&gt; {V2} == “映射到k2” ==&gt; {k2,V2}

迭代3:

.......

棘手的部分

远程进程还有一项附加功能,允许它使用边界分隔符(例如':')在一次调用中摄取多个值 v 。如下图所示:

迭代1:

{k1,v1} {k2,v2} == “提取并重新构建 v1 v2 表示输入“ ==&gt;(处理)== ”输出“ ==&gt; {V1:V2} == “map to k1,k2” ==&gt; {k1,V1},{k2,V2}

迭代2:

{k3,v3} {k4,v4} == “提取并重新构建 v3 v4 输入“ ==&gt;(处理)== ”输出“ ==&gt; {V3:V4} == “map to k3,k4” ==&gt; {k3,V3},{k4,V4}

迭代3:

.......

方法

我想到的一件事是使用'map'功能而不是迭代/光标。 有哪些其他技术/方法可以改善“棘手”场景的性能?目标是减少对流程的调用,但不是以性能为代价

Python或欢迎样板建议

1 个答案:

答案 0 :(得分:0)

在python中:

def passPairs(adict):
  k1, v1 = adict.popitem('k1')
  k2, v2 = adict.popitem('k2')
  V1, V2 = process(v1, v2) # corrected the case
  adict.update(zip((k1,k2), (V1, V2))