gpt4 book ai didi

python - 有没有办法让每个循环都并行?

转载 作者:太空狗 更新时间:2023-10-29 17:57:02 25 4
gpt4 key购买 nike

假设我在 Python 中有 2 个列表,我想并行遍历每个列表 - 例如对两个列表的元素 1 做一些事情,对两个列表的元素 2 做一些事情......我知道我可以通过使用索引来做到这一点:

for listIndex in range(len(list1)):
doSomething(list1[listIndex])
doSomething(list2[listIndex])

但是有没有一种方法可以更直观地做到这一点,使用 foreach 循环?像 for list1Value in list1, list2Value in list2...?

我目前在 Python 中遇到过这种情况,但这是一个长期存在的问题,我很想知道您是否可以用任何语言做到这一点。 (我只是假设 Python 最有可能有处理这个问题的方法。)

最佳答案

是这样的吗?

for (a,b) in zip(list1, list2):
doSomething(a)
doSomething(b)

虽然如果 doSomething() 不执行 I/O 或更新全局状态,并且它一次只对其中一个元素起作用,但顺序无关紧要,因此您可以使用 chain()(来自 itertools):

for x in chain(list1, list2):
doSomething(x)

Apropos,from itertools import * 是我经常做的事情。考虑 izip() 而不是使用我上面给出的 zip()。还要查看 izip_longest()izip(count(), lst) 等。欢迎使用函数式编程。 :-)

哦,压缩也适用于更多的“列”:

for idx, a, b, c in izip(count(), A, B, C):
...

关于python - 有没有办法让每个循环都并行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3229458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com