三种字符串连接方法的效率比较

在python下测试三种进行字符串连接(+、%s格式化、join())方法的效率:

  1 #!/usr/bin/env python
  2 """Test string connect efficiency in diffrent methods"""
  3
  4 def test_add(stra, strb):
  5     """Use '+' to connect"""
  6     stra + strb
  7
  8 def test_join(stra, strb):
  9     """Use 'join' method to connect"""
10     ''.join([stra, strb])
11
12 def test_format(stra, strb):
13     """Use '%s' to connect"""
14     '%s%s' % (stra, strb)
15
16 if __name__ == '__main__':
17     stra = 'abcdefghijklmnopqrstuvwxyz'
18     strb = '---------------01234567890'
19
20     import time
21
22     begin = time.time()
23     for i in range(10000000):
24         if i % 2 == 1:
25             stra = stra[1:]
26             strb = strb[1:]
27         test_add(stra, strb)
28     end = time.time()
29     print "'+'          use:    %s" % (end - begin)
30
31     begin = time.time()
32     for i in range(10000000):
33         if i % 2 == 1:
34             stra = stra[1:]
35             strb = strb[1:]
36         test_join(stra, strb)
37     end = time.time()
38     print "'join'       use:    %s" % (end - begin)
39
40     begin = time.time()
41     for i in range(10000000):
42         if i % 2 == 1:
43             stra = stra[1:]
44             strb = strb[1:]
45         test_format(stra, strb)
46     end = time.time()
47     print "'%%s format'  use:    %s" % (end - begin)


每种方法循环1千万次,
测试了三次,结论大致相同(单位:秒):
'+'               use:    11.6591591835
'join'            use:    17.7512509823
'%s format'  use:    16.6519739628

'+'               use:    11.7030470371
'join'            use:    17.747961998
'%s format'  use:    16.6497249603

'+'               use:    11.6545419693
'join'            use:    17.7758250237
'%s format'  use:    16.6489379406

结论:
还是最常用的“+“的效率最高。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值