我正在使用'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循环之后?
我有一个已经按 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'})仅适用于第一个键,如果字典按名称排序,则会失败。