使用#python3格式快速打印



我经常需要在python3中打印一些东西。我知道下面的代码有3种方法。从我的测试来看,方法3是最慢的,但由于测试环境不稳定,我不知道哪一个更快。

什么是最快速、最具蟒蛇风格的打印方式?

import time
t = time.time()
for _ in range(10000):
# method 1
# print("some words....%s,%s,%i"%("arg_str1", "arg_str2",33))
# method 2
print("some words....{},{},{}".format("arg_str1", "arg_str2", 33))
# method 3
# print("some words....","arg_str1", "arg_str2",33 )
# method 4 ....
print(time.time()-t)

您可以使用一个f字符串,它基本上只是一个漂亮的.format。格式化是实现您想要的功能的最快方法。要插入字符串值,您只需要使用与f字符串不同的引号类型,如下所示:

print(f"some words....{'arg_str1'},{'arg_str2'},{33}")
# Speed: 0.012160062789916992

此外,如果你真的想要快速,最好的方法是不打印每次迭代,而是将字符串附加到列表/另一个字符串中,然后打印出字符串。(仅需约0.0076000307464599609(

import time
t = time.time()
printString = []
for _ in range(10000):
# method 1
# print("some words....%s,%s,%i"%("arg_str1", "arg_str2",33))
# method 2
# printString += f"some words....{'arg_str1'},{'arg_str2'},{33}"
printString.append(f"some words....{'arg_str1'},{'arg_str2'},{33}")
# print(f"some words....{'arg_str1'},{'arg_str2'},{33}")
# method 3
# print("some words....","arg_str1", "arg_str2",33 )
# method 4 ....
print('n'.join(printString))
print(time.time()-t)

此外,使用列表理解可以更快地理解。(大约0.005544662475(

import time
t = time.time()
printString = [f"some words....{'arg_str1'},{'arg_str2'},{33}" for _ in range(10000)]
print('n'.join(printString))
print(time.time()-t)

最新更新