4 回答

TA貢獻1725條經驗 獲得超8個贊
您可以使用嵌套的 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
這將確保執行順序得到維護(先進先出),同時輸出將先完成,先服務。希望我回答了這個問題,或者這有幫助!
添加回答
舉報