小编use*_*855的帖子

在Python中实现一种特殊类型的多处理队列

想象一个倒置的二叉树,其节点A,B,C,D,E,F在级别0上.节点G,H,I在级别1上,节点J在级别2上,节点K在级别3上.

等级1:G = func(A,B),H = func(C,D),I = func(E,F)

等级2:J = func(G,H)

等级3:K = func(J,I).

级别0上的每对节点必须按顺序处理,级别1上的每对节点都可以按任何顺序处理,但结果必须在下一级别必须如图所示进行处理,依此类推,直到我们最终得到最终结果结果,K.

实际问题是计算几何问题,其中固体序列融合在一起.A与B相邻,与C相邻,依此类推.所得到的A和B(G)的熔丝与C和D(H)的熔丝相邻.得到的J和I(K)的熔丝是最终结果.因此,你不能融合G和I,因为它们不相邻.如果某个级别上的节点数不是2的幂,则最终会得到一个必须进一步处理的悬空实体.

由于融合过程计算成本高且内存密集但非常平行,我想使用Python多处理包和某种形式的队列.在计算G = func(A,B)之后,我想将结果G推入队列以进行后续的J = func(G,H)计算.当队列为空时,最后的结果是最终结果.请记住,mp.queue不一定会产生结果FIFO,因为I = func(E,F)可能在H = func(C,D)之前完成

我想出了一些(坏的)解决方案,但我确信有一个优雅的解决方案超出了我的掌握.建议?

python queue multiprocessing

5
推荐指数
1
解决办法
423
查看次数

使用python处理此文本文件的大多数pythonic方法

我有一个包含测试数据的文本文件,如下所示:

hdr 1

hdr2

hdr3

data1

data2

data3

data1

data2

....
Run Code Online (Sandbox Code Playgroud)

每一行之间都有一个空行.

我需要创建一个包含列表的列表

[[hdr1,hdr2,hdr3],[data1,data2,data3],[data1,data2,...]
Run Code Online (Sandbox Code Playgroud)

这样做的简洁,pythonic方式是什么?

python

2
推荐指数
1
解决办法
150
查看次数

标签 统计

python ×2

multiprocessing ×1

queue ×1