(一)三种字符串拼接/格式化方式对比
def a():
start = time.time()
for i in xrange(1000000):
s = 'xxx' + str(i)
print(time.time()- start) # 0.148000001907
def b():
start = time.time()
for i in xrange(1000000):
s = 'xxx%s' % i
print(time.time()- start) # 0.111999988556,如果是用%d则为0.381999969482
def c():
start = time.time()
for i in xrange(1000000):
s = 'xxx{}'.format(i)
print(time.time()- start) # 0.203999996185
不难看出使用%格式化字符串的效率是最高的。
另外要注意下一般情况下数字格式化使用%s是要比%d效率更高的。
(二)有没有比字符串格式化更高效的方法
考虑一下情景:
def d1():
d = {}
start = time.time()
for i in xrange(1000000):
d['xxx%s' % i] = i
d.get('xxx%s' % i)
print(time.time()- start) # 0.541000127792
def d2():
d = {}
start = time.time()
for i in xrange(1000000):
d.setdefault('xxx', {})[i] = i
d.get('xxx', {}).get(i)
print(time.time()- start) # 0.394000053406
如无必要,尽可能避免使用字符串拼接吧。