Python中有没有一种方法可以创建一个for循环,而不必等到内部代码完成后再进行迭代?

Python中有没有一种方法可以创建一个for循环,而不必等到内部代码完成后再进行迭代?,python,loops,time,Python,Loops,Time,假设我有一个for循环,里面有time.sleep函数 import time list = [1, 2, 3] for i in list: FunctionThatDoesSomethingTimeRelated(i) time.sleep(3) FunctionThatDoesSomethingTimeRelated(i) 有没有办法让循环同时遍历列表的每个部分,而不是等待循环中的代码被执行 基本上,执行顺序需要如下所示: FunctionThatDoesSo

假设我有一个for循环,里面有time.sleep函数

import time

list = [1, 2, 3]

for i in list:
    FunctionThatDoesSomethingTimeRelated(i)
    time.sleep(3)
    FunctionThatDoesSomethingTimeRelated(i)
有没有办法让循环同时遍历列表的每个部分,而不是等待循环中的代码被执行

基本上,执行顺序需要如下所示:

FunctionThatDoesSomethingTimeRelated(1)
FunctionThatDoesSomethingTimeRelated(2)
FunctionThatDoesSomethingTimeRelated(3)
time.sleep(3)
FunctionThatDoesSomethingTimeRelated(1)
FunctionThatDoesSomethingTimeRelated(2)
FunctionThatDoesSomethingTimeRelated(3)
与此相反:

FunctionThatDoesSomethingTimeRelated(1)
time.sleep(3)
FunctionThatDoesSomethingTimeRelated(1)
FunctionThatDoesSomethingTimeRelated(2)
time.sleep(3)
FunctionThatDoesSomethingTimeRelated(2)
FunctionThatDoesSomethingTimeRelated(3)
time.sleep(3)
FunctionThatDoesSomethingTimeRelated(3)

请在提问时更加清楚,您目前使用相同的函数名来描述大概2个不同的函数

另外,使用硬编码计时来等待完成通常不是一个好主意

您可以使用2个for循环来获得上述结果

import time

list1 = [1, 2, 3]

for i in list1:
    timeRelFunction1(i)

time.sleep(3)

for i in list1:
    timeRelFunction2(i)
   
在这里使用list作为变量名也是不正确的,因为它是一个变量名

根据评论编辑:

你可以试着用这样的方法,每3秒钟检查股票价格n次


上述代码将每3秒检查一次股票价格,共检查2次。

请在提问中更清楚地说明,您当前使用的函数名可能是两个不同的函数

另外,使用硬编码计时来等待完成通常不是一个好主意

您可以使用2个for循环来获得上述结果

import time

list1 = [1, 2, 3]

for i in list1:
    timeRelFunction1(i)

time.sleep(3)

for i in list1:
    timeRelFunction2(i)
   
在这里使用list作为变量名也是不正确的,因为它是一个变量名

根据评论编辑:

你可以试着用这样的方法,每3秒钟检查股票价格n次


上述代码将每3秒检查一次股票价格,共2次。

您可以使用嵌套for循环:

for _ in range(10):     # how many times do these 3 function calls happen?
    for idx in range(3):
        FunctionThatDoesSomethingTimeRelated(idx)
    time.sleep(3)

可以使用嵌套for循环:

for _ in range(10):     # how many times do these 3 function calls happen?
    for idx in range(3):
        FunctionThatDoesSomethingTimeRelated(idx)
    time.sleep(3)

这就是你想做的吗

import time

list = [1, 2, 3]

for i in list:
    FunctionThatDoesSomethingTimeRelated(i)

time.sleep(3)

for i in list:    
    FunctionThatDoesSomethingTimeRelated(i) 

这就是你想做的吗

import time

list = [1, 2, 3]

for i in list:
    FunctionThatDoesSomethingTimeRelated(i)

time.sleep(3)

for i in list:    
    FunctionThatDoesSomethingTimeRelated(i) 

根据我读到的问题,您正在寻找列表操作的并发性。有几种方法可以做到这一点,最理想的方法是最复杂的方法。但是一个简单的入门方法是使用线程模块。您可以用这种方式修改以下代码:

发件人:

致:

输出:


这将确保先执行后维护执行顺序,而输出将先完成,先服务。希望我能回答这个问题,否则这会有帮助

根据我读到的问题,您正在寻找列表操作的并发性。有几种方法可以做到这一点,最理想的方法是最复杂的方法。但是一个简单的入门方法是使用线程模块。您可以用这种方式修改以下代码:

发件人:

致:

输出:


这将确保先执行后维护执行顺序,而输出将先完成,先服务。希望我能回答这个问题,否则这会有帮助

除非您正在寻找线程或多处理,为什么不写两个循环,并在它们之间调用time.sleep3?除非您正在寻找线程或多处理,为什么不写两个循环,并在它们之间调用time.sleep3?这是同一个函数,这就是全部要点。例如,如果此函数获取股票1的价格,并且需要在3秒钟内再次获取该价格,则它将具有不同的输出。我希望能够得到股票1、2和3的价格。等待3秒钟,然后再次获取三个价格。请参阅我的编辑。但如前所述,提问时请更加简洁。每个人都愿意提供帮助并付出努力,但在事实发生后说事情应该是这样的,这表明缺乏一个明确的问题。这是同样的功能,这就是全部要点。例如,如果此函数获取股票1的价格,并且需要在3秒钟内再次获取该价格,则它将具有不同的输出。我希望能够得到股票1、2和3的价格。等待3秒钟,然后再次获取三个价格。请参阅我的编辑。但如前所述,提问时请更加简洁。每个人都愿意提供帮助并付出努力,但在事实发生后说事情本来应该是这样的,这表明缺乏一个明确的问题。谢谢!答案比我预想的要简单得多:谢谢!答案比我预想的要简单得多:D
 python .\testing.py
1
2
3
1
2
3