[英]Python Threading: How to build a dictionary from the results
我将以下代码嵌套在另一个函数中(因此这不是任何类型的独立文件):
train_set_percentages = [0.2,0.5,0.8,1.0]
results = {}
for i in range(len(train_set_percentages)):
kf2_index_percent,kf5_index_percent,loo_index_percent = generate_data_entry(train_set_percentages[i])
results[kf2_index_percent[0]] = kf2_index_percent[1]
results[kf5_index_percent[0]] = kf5_index_percent[1]
results[loo_index_percent[0]] = loo_index_percent[1]
generate_data_entry
返回三个元组, kf2_index...etc.
. 我需要最终字典中的所有元组(键、数据)。
我有:
import threading
from threading import Thread
但是,我不知道如何从函数的输出中构建这个字典。 只有 5 个训练集百分比,那么如何并行运行这些百分比并构建字典?
for i in range(len(train_set_percentages)):
Thread(target=generate_data_entry(train_set_percentages[i]))
然后...??
我在问题下方发布的链接中找到了解决方案。 为了按照我上面描述的方式制作字典,
from threading import Thread
numbers = [1,2,3,4]
keys = ['one','two','three','four']
def add_to_dict(number,key,dict):
dict[key] = number
n = 5
dict_list = [{}] * 5
threads = [None] * 5
# run threads
for i in range(len(threads)):
threads[i] = Thread(target=add_to_dict,args=(number[i],keys[i],dict_list[i]))
threads[i].start()
for i in range(len(threads)):
threads[i].join()
# merge dictionaries (using Python 3.5 syntax)
results = {}
for i in dict_list:
results = {**results,**i}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.