首页 > 解决方案 > 将字典列表分配给 for 循环中的函数

问题描述

假设我有一个包含 GET 请求的有效负载数据的字典列表,如下所示:

lst = [{'json1': 1},{'json2': 2},{'json3': 3}]

该列表可以是 1 - 10 范围内的任意长度。从这里我将此列表发送到线程的 for 循环,该循环调用独立的函数(call_1通过 to call_10):

for k in lst():
    thread.start_new_thread(call_1, ( lst[k] ,))
    thread.start_new_thread(call_2, ( lst[k] ,))
    ...
    thread.start_new_thread(call_10,( lst[k] ,))

我的问题是,如果列表的长度仅为 3,比如说,我应该使用什么方法以便只调用前 3 个线程?

欢迎任何建议,谢谢。

标签: pythonlistfor-loop

解决方案


尝试这个:

counter = 0
for k in lst:
    counter += 1
    exec("thread.start_new_thread(call_" + str(counter) + ", ( lst[k] ,))" )

我正在使用exec(),它将字符串视为代码。有问题的字符串是使用动态创建的counter


推荐阅读