Python f-string 格式化字符串 % format() 性能比较
f-string 格式化字符串文字由 CPython 3.6 引入。
f-string 通过采用 f 或 F 作前缀, 与 % format() 的性能比较源代码:
from datetime import datetime start = datetime.now() count = 2000000 while count: count -= 1 a = "str" + "ing" b = a + " test" print(datetime.now() - start) start = datetime.now() count = 2000000 while count: count -= 1 a = "%sing" % ("str") b = "%s test" % (a) print(datetime.now() - start) start = datetime.now() count = 2000000 while count: count -= 1 a = "{}ing".format("str") b = "{} test".format(a) print(datetime.now() - start) start = datetime.now() count = 2000000 while count: count -= 1 string = "str" a = f"{string}ing" b = f"{a} test" print(datetime.now() - start)
通过 数字 IDE 运行调试, 获取以下结果。
0:00:01.061802 0:00:02.395206 0:00:02.948405 0:00:01.809603
其中直接 + 操作符用时最少,要求对象支持且是相关对象类型; f-string % 操作符次之, format() 最慢。
f-string 在语法上不支持直接嵌套,如下所示:
>>> a = "string" >>> f"{{a}}" '{a}' >>>
可改成以下形式:
>>> a = "string" >>> f"{chr(123)}{a}{chr(125)}" '{string}' >>>
f-string 语句花括号内不能直接包含 \\ (反斜杠转义) 及 \n \r \t 字符 (花括号外可以), 但可包括 / 正斜杠, 单双引号, 一般操作运算。
在 Windows, 使用 f-string 语句调用 DOS 命令, 有时可能无法运行。
另请参阅:
版权声明: 本文为独家原创稿件,版权归 乐数软件 ,未经许可不得转载。