所以,當我使用print()/sys.stdout.write()列印我的結果時(我檢查了所有結果是否正確),當我不使用列印時,程式執行時間增加到 100 次。
N = 串列中的元素數(numpy陣列)
C = C 是陣列的元素
T = 陣列數
1≤N≤1000
1≤Ci≤10^5
1≤T≤100
我認為這是由于列印功能而發生的。如果是,我將如何解決這個問題
沒有列印執行時間 = 0.012797699999999967
列印執行時間 = 1.1667817
這是來自 Google KickStart 的問題
def sub_one(inputlist, inputlength):
smalllist = np.array([], dtype='int32')
outputlist = np.array([], dtype='int32')
h_score = 1
for mainnum in inputlist:
if mainnum > h_score:
smalllist = np.append(smalllist, mainnum)
else:
outputlist = np.append(outputlist, mainnum)
continue
eachlist = np.array([], dtype='int32')
for num in smalllist:
if num >= h_score:
eachlist = np.append(eachlist, h_score)
if np.count_nonzero(eachlist) == h_score:
outputlist = np.append(outputlist, h_score)
smalllist = smalllist[smalllist > h_score]
h_score = 1
return outputlist
def caseprinter(thelist):
returnstring = ""
for i in thelist:
returnstring = (str(i) " ")
return returnstring
if __name__ == "__main__":
cases = int(input())
for i in range(cases):
inputlength = int(input())
inputlist = input().split(" ")
inputlist = np.array(inputlist, dtype='int32')
outputlist = sub_one(inputlist, inputlength)
print(f'Case #{i 1}: {caseprinter(outputlist)}')```
uj5u.com熱心網友回復:
您的
def caseprinter(thelist):
returnstring = ""
for i in thelist:
returnstring = (str(i) " ")
return returnstring
可能需要二次時間。嘗試線性時間:
def caseprinter(thelist):
return " ".join(map(str, thelist))
uj5u.com熱心網友回復:
當您處理大量列印功能時,它會變慢。您最好將您的資訊寫入檔案。
with open("f.txt", "a") as f:
f.write(your_str)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/427454.html
標籤:Python python-3.x 列表 麻木的
