繁体   English   中英

Python 线程:如何根据结果构建字典

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM