当我使用打印功能时,如何减少我在 python 中的执行时间?



所以,当我使用print()/sys.stdout.write()打印我的结果时(我已经检查了所有结果是否正确),当我不使用打印时,程序执行时间增加到最小 100 倍。

N = 列表中的元素数(numpy数组)
C = C 是数组
T = 数组数

1≤N≤1000
1≤Ci≤10^5
1≤T≤100

我认为这是由于打印功能而发生的。如果是,我将如何解决此问题
没有打印执行时间 = 0.012797699999999967
打印执行时间 = 1.1667817

这是一个来自谷歌启动的问题


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)}')```

您的

def caseprinter(thelist):
returnstring = ""
for i in thelist:
returnstring += (str(i) + " ")
return returnstring

可能需要二次时间。尝试线性时间:

def caseprinter(thelist):
return " ".join(map(str, thelist))

最新更新