在這個SO帖子裏,https://softwareengineering.stackexchange.com/questions/304445/why-is-s-better-than-for-concatenation,據說%s比+好。但我的測試顯示相反。對於字符串連接,%s是否真的比+更好?
import string
import random
R = 10
def doit1():
x =""
for _ in range(R):
x += random.choice(string.letters)
def doit2():
y = ""
for _ in range(R):
y = "%s%s" % (y, random.choice(string.letters))
if __name__ == '__main__':
import timeit
print(timeit.timeit("doit1()", setup="from __main__ import doit1"))
print(timeit.timeit("doit2()", setup="from __main__ import doit2"))
是給我下面的輸出:
➜ Documents python3.5 string_test.py
30.200247984997986
33.85921495900038
好像他們幾乎是相同的。我在這裏錯過了什麼嗎?
我想像這種偏好是主要基於*可讀性*而不是性能,這也取決於運行時間和其他因素。 – superuser0
所有用戶投票權下降。定時比較器功能始終與靜態變量一起工作。 'y =「%s%s」%(y,random.choice(string.letters))'這是個玩笑? – dsgdfg
另一點:'x + = random.choice(string.letters)'where is all index? – dsgdfg