Python 一次运行10个循环

Python 一次运行10个循环,python,Python,好的,我可以在PowerShell中实现这一点,因为这是我的专长,但是,我在尝试用Python实现这一点时遇到了问题 请看我正在尝试做什么 本质上,这就是我在伪代码中要做的: objArray = [ {"name": "Test User", "address": "123 Movie Road"}, {"name": "Test User", "address": "444 Music Road"} ] #I want to run the below loop 10 a

好的,我可以在PowerShell中实现这一点,因为这是我的专长,但是,我在尝试用Python实现这一点时遇到了问题

请看我正在尝试做什么

本质上,这就是我在伪代码中要做的:

objArray = [
    {"name": "Test User", "address": "123 Movie Road"}, 
    {"name": "Test User", "address": "444 Music Road"}
]

#I want to run the below loop 10 at a time

for obj in objArray: 
     print(obj["name"])

显然,这过于简单了,但是,我希望这概括了我需要做的事情。

您可以使用带有步长值的
range

step = 10
for batch_idx in range(0, len(objArray), step):
    for obj in objArray[batch_idx:(batch_idx + step)]:
        print(obj['name'])
例如,您可以使用多线程来扩展此功能:

from threading import Thread

def foo(objects):
    for obj in objects:
        print(obj['name'])

step = 10
for batch_idx in range(0, len(objArray), step):
    objects = objArray[batch_idx:(batch_idx + step)]
    t = Thread(target=foo, args=(objects,))
    t.start()

要并行/并发地执行某些操作,您需要线程。幸运的是,Python有一个易于使用的API。您需要导入库

要运行线程,您需要创建一个新的线程对象并启动它。线程对象至少需要一个
target
参数,它告诉他要运行哪个函数

e、 g

请注意,目标必须是可执行函数。这意味着只输入不带括号的名称

要运行10个线程,您需要创建10个线程并启动它们。 您的最终代码可以是这样的:

import threading

objArray = [
    {"name": "Test User", "address": "123 Movie Road"}, 
    {"name": "Test User", "address": "444 Music Road"}
]


def my_loop():
    for obj in objArray: 
        print(obj["name"])

for i in range(10): 
    thread = threading.Thread(target=my_loop)
    thread.start()


你想做什么?我不知道powershell,但通过查看你的代码,看起来你在寻找一种异步执行代码块的方法,对于数组中的每个对象?如果你想并行/并发运行循环,你可以为它编写一个函数,并在10分钟内启动该函数。请编辑该问题,以便更清楚地说明你要做什么。到目前为止,有四个人认为这可能意味着四件不同的事情@UliSotschok这就是我要做的,但是我不知道代码是什么样子,我尝试了线程示例,但是没有效果,这与问题中的代码有什么不同?
import threading

objArray = [
    {"name": "Test User", "address": "123 Movie Road"}, 
    {"name": "Test User", "address": "444 Music Road"}
]


def my_loop():
    for obj in objArray: 
        print(obj["name"])

for i in range(10): 
    thread = threading.Thread(target=my_loop)
    thread.start()