我有一个哈希列表/关联数组和其他嵌套对象,例如哈希的哈希等。示例数据为 json 格式。
简单的部分
从上面描述的复杂数据结构中,我只对特定的重复 {k,v} 对感兴趣,它可以重新构造,并且可以作为参数迭代传递给一个远程进程。远程进程对值 v 执行操作并生成输出 'V'。输出 'V' 可以映射回 'k' 作为 {k,V} - 一个相当常见的问题,说明如下:
迭代 1:
{k1,v1}==“为输入提取和重组 v1”==>(处理)==< em>“输出”==>{V1}==“映射到 k1”==>{k1,V1}
迭代 2:
{k2,v2}==“为输入提取和重构 v2”==>(处理)==< em>“输出”==>{V2}==“映射到 k2”==>{k2,V2}
迭代 3:
.......
棘手的部分
远程进程有一个额外的功能,允许它在使用边界分隔符(例如 ':')的单个调用中摄取多个值 v。如下图所示:
迭代 1:
{k1,v1},{k2,v2}==“提取和重组v1:v2 用于输入”==>(处理)==“输出”==>{V1:V2}==“映射到 k1, k2”==>{k1,V1},{k2,V2}
迭代 2:
{k3,v3},{k4,v4}==“提取和重组v3:v4 用于输入”==>(处理)==“输出”==>{V3:V4}==“映射到 k3、k4”==>{k3,V3},{k4,V4}
迭代 3:
.......
方法?
我想到的一件事是使用“ map ”功能而不是迭代/光标。 还有哪些其他技术/方法可以提高“棘手”场景的性能?目标是减少对流程的调用,但不以性能为代价
欢迎使用 Python 或 go 样板建议
最佳答案
在 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))
关于python - 数据重映射技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46614640/