f-string 句法和 + 內置操作符 性能比較


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
					

其中 + 內置操作符用時最少,但必須是 str 對象類型;f-string 句法次之,format() 方法最慢。

嵌套語句


f-string 在語法上不支持直接嵌套,如下所示:

>>> a = "string"
>>> f"{{a}}"
'{a}'
>>>
						

可改成以下形式:

>>> a = "string"
>>> f"{chr(123)}{a}{chr(125)}"
'{string}'
>>>
						

另請參閱:

% 操作符

格式字符串語法

格式化字符串文字

版權聲明: 本文為獨傢原創稿件,版權歸 樂數軟件 ,未經許可不得轉載。

內容錶

  1. 性能比較
  2. 嵌套語句

上一話題

f-string 用法

下一話題

format() 方法

快速搜索