小编Bam*_*lur的帖子

什么时候应该调用multiprocessing.Pool.join?

我正在使用'multiprocess.Pool.imap_unordered'如下

from multiprocessing import Pool
pool = Pool()
for mapped_result in pool.imap_unordered(mapping_func, args_iter):
    do some additional processing on mapped_result
Run Code Online (Sandbox Code Playgroud)

我需要打电话pool.close还是pool.join在for循环之后?

python python-multiprocessing

63
推荐指数
2
解决办法
5万
查看次数

Python:将新元素插入到字典的排序列表中

我有一个已经按 key 排序的字典列表id

y = [{'id': 0, 'name': 'Frank'},
     {'id': 5, 'name': 'Hank'},
     {'id': 8, 'name': 'Fred'},
     {'id': 30, 'name': 'Jill'}]
Run Code Online (Sandbox Code Playgroud)

我想在列表中插入一个新元素。

y.append({'id': 6, 'name': 'Jenkins'})
Run Code Online (Sandbox Code Playgroud)

添加新元素后,如何避免按如下​​方式再次对列表进行排序?

y = sorted(y, key=lambda x: x['id'])
Run Code Online (Sandbox Code Playgroud)

理想的结果是:

y = [{'id': 0, 'name': 'Frank'},
     {'id': 5, 'name': 'Hank'},
     {'id': 6, 'name': 'Jenkins'},
     {'id': 8, 'name': 'Fred'},
     {'id': 30, 'name': 'Jill'}]
Run Code Online (Sandbox Code Playgroud)

编辑:

使用bisect.insort(y, {'id': 6, 'name': 'Jenkins'})仅适用于第一个键,如果字典按名称排序,则会失败。

sorting dictionary python-2.6 python-2.7

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