4 回答
TA贡献1725条经验 获得超7个赞
您可以使用嵌套的 for 循环:
for _ in range(10): # how many times do these 3 function calls happen?
for idx in range(3):
FunctionThatDoesSomethingTimeRelated(idx)
time.sleep(3)
TA贡献1783条经验 获得超4个赞
请在您的提问中更加清楚,您目前正在使用相同的函数名称来描述(大概)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价格
import time
list1 = [1, 2, 3]
def stockPriceEveryThreeSeconds(number_of_repetitions):
for i in range(number_of_repetitions):
for i in list1:
getStockPrices(i)
time.sleep(3)
stockPriceEveryThreeSeconds(2)
上面的代码会每 3 秒检查一次股票价格,共 2 次。
TA贡献1815条经验 获得超6个赞
这是你想做的吗?
import time
list = [1, 2, 3]
for i in list:
FunctionThatDoesSomethingTimeRelated(i)
time.sleep(3)
for i in list:
FunctionThatDoesSomethingTimeRelated(i)
TA贡献1848条经验 获得超6个赞
根据我正在阅读的问题,您正在寻找列表操作的一些并发性。有几种方法可以解决这个问题,最优化的是迄今为止最复杂的。但一个简单的入门方法是使用线程模块。您可以通过这种方式修改以下代码:
从:
import time
list = [1, 2, 3]
for i in list:
FunctionThatDoesSomethingTimeRelated(i)
time.sleep(3)
FunctionThatDoesSomethingTimeRelated(i)
到:
def functionThatThreads(numberOfLoops):
import time
import threading
list = [1, 2, 3]
for _ in range(numberOfLoops):
for i in list:
threading.Thread(target=FunctionThatDoesSomethingTimeRelated, args=(i,)).start()
time.sleep(3)
def FunctionThatDoesSomethingTimeRelated(i):
print(i)
functionThatThreads(2)
输出:
python .\testing.py
1
2
3
1
2
3
这将确保执行顺序得到维护(先进先出),同时输出将先完成,先服务。希望我回答了这个问题,或者这有帮助!
添加回答
举报