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 命令, 有时可能无法运行。

 

另请参阅:

% 操作符

格式字符串语法

格式化字符串文字

 

版权声明: 本文为独家原创稿件,版权归 乐数软件 ,未经许可不得转载。

上一话题

Python 错误异常 解决办法

下一话题

Python 缩进特性

 

快速搜索